~~~
//可逆加密
function encrypt($data, $key) {
$prep_code = serialize($data);
$block = mcrypt_get_block_size('des', 'ecb');
if (($pad = $block - (strlen($prep_code) % $block)) < $block) {
$prep_code .= str_repeat(chr($pad), $pad);
}
$encrypt = mcrypt_encrypt(MCRYPT_DES, $key, $prep_code, MCRYPT_MODE_ECB);
return base64_encode($encrypt);
}
//可逆解密
function decrypt($str, $key) {
$str = base64_decode($str);
$str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
$block = mcrypt_get_block_size('des', 'ecb');
$pad = ord($str[($len = strlen($str)) - 1]);
if ($pad && $pad < $block && preg_match('/' . chr($pad) . '{' . $pad . '}$/', $str)) {
$str = substr($str, 0, strlen($str) - $pad);
}
return unserialize($str);
}
例:
//加密
public function encryption(){
$a = 'bac';
$b = encrypt($a,'2568kihy');
dump($b);
}
//解密
public function decode(){
$a = 'bac';
$b = decrypt($a,'2568kihy');
dump($b);
}
~~~
- 空白目录
- 关于页面跳转跟重定向
- thinkphp5return的问题
- thinkphp5权限auth
- thinkphp5关联查询多表查询join
- javascript
- 数据库命令行操作
- php间隔一段时间自动执行
- PHP字符串首尾留N位,中间替换成*号
- tp5获取当前域名
- PHP常用函数
- 注册发送短信验证的接口详解
- php可逆加密解密
- 配置本地虚拟主机
- thinkphp5跨控制器调用
- thinkphp5框架加载流程
- thinkphp5路由详解
- thinkphp5功能集合
- thinkphp5数据库操作
- delete,put类型
- tp5数据库查询
- tp5数据库增删改
- 事务机制
- thinkphp模型model新建和查询
- tp5model的新增
- tp5model修改
- tp5model删除和软删除
- tp5视图
- tp5API