php加密解密实用类
一个加解密类。如果你想在用户忘记密码时为他或她找回原来的密码,那么这个类是个好用的工具
用户注册的密码一般不会明文保存,总得加个密先。最简单的当然是在数据库sql语句中调用md5函数加密用户密码。这里介绍一个加解密类。如果你想在用户忘记密码时为他或她找回原来的密码,那么这个类是个好用的工具。当然,这个加解密类也可用于其他用途。
<?php
class
crypt {
private $skey;
public function __construct($key)
{
$this->skey = hash("md5", $key, true);
//32位skey
}
public function safe_b64encode($string)
{
$data = base64_encode($string);
$data =
str_replace(array(‘+‘, ‘/‘, ‘=‘), array(‘-‘, ‘_‘, ‘‘), $data);
return
$data;
}
public function safe_b64decode($string)
{
$data = str_replace(array(‘-‘, ‘_‘), array(‘+‘, ‘/‘),
$string);
$mod4 = strlen($data) % 4;
if ($mod4)
{
$data .= substr(‘====‘, $mod4);
}
return
base64_decode($data);
} //
public function encode($value)
{
if (!$value) {
return false;
}
$text =
$value;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,
MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size,
MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256,
$this->skey, $text, MCRYPT_MODE_ECB, $iv);
return
trim($this->safe_b64encode($crypttext));
}
public function
decode($value) {
if (!$value) {
return
false;
}
$crypttext =
$this->safe_b64decode($value);
$iv_size =
mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv =
mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypttext =
mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB,
$iv);
return trim($decrypttext); www.tfjy386.com
}
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。