一个加解密类。如果你想在用户忘记密码时为他或她找回原来的密码,那么这个类是个好用的工具
用户注册的密码一般不会明文保存,总得加个密先。最简单的当然是在数据库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
}
}
相关文章
- 09-25AES上传文件加密下载文件解密(完整,附助手实体类)
- 09-25MD5&&DES加密解密帮助类
- 09-25微信小程序des加密、PHP des解密
- 09-25php AES cbc模式 pkcs7 128位加密解密(微信小程序)
- 09-25SpringBoot2集成jasypt3.0.3 最简便配置文件 数据库密码 加密工具(加密解密工具类,非命令行)
- 09-25java JVM-自定加密和解密类加载器
- 09-25JavaScript加密和PHP解密
- 09-25javascript – CryptoJS使用密码加密AES,但PHP解密需要密钥
- 09-25PHP、Android、iOS接口RSA加密解密
- 09-25Java-DES算法加密解密工具类