函数:

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);
}

调用:

$key = 'okyo.cn';
$data = array('id' => 100, 'username' => 'customer', 'password' => 'e10adc3949ba59abbe56e057f20f883e');
$snarr = serialize($data);
$en = encrypt($data, $key);
$de = decrypt($en, $key);
echo "加密原型:";
print_r($data);
echo "
密钥:$key
加密结果:$en
解密结果:";
print_r($de);

  

最新文章

  1. sql rowversion
  2. oracle-day1
  3. socket模块
  4. ASP.NET为图片加上水印
  5. JAVA:三种集合LIST、SET、MAP
  6. visualsvn server 报错 can&#39;t read file &quot;current&quot;:End of file out
  7. 字符串处理-AC自动机
  8. WireShark 抓取Telnet包
  9. Asp.Net 网站一键部署技术(上)
  10. Maven学习 使用Nexus搭建Maven私服(转)
  11. Nginx简介与安装
  12. 手机浏览器 - 如何消除&lt;a&gt;标签在点击时的蓝色底色?
  13. Java 不变模式
  14. Linux学习---GCC编译常见错误
  15. spring事务管理-Spring 源码系列(6)
  16. IO 和 NIO 的区别
  17. Supervisor(Linux/Unix进程管理工具)安装与配置
  18. Webpack的安装、配置与执行
  19. Python开发【整理笔记】
  20. PAT甲级1057. Stack

热门文章

  1. 调用百度api输出地址和城市查询出具体坐标系
  2. activiti工作流
  3. SpringMVC拦截器和@ResponseBody注解冲突
  4. SpringBoot+Mybatis+PageHelper实现分页
  5. 在IDEA里创建web项目,以及web 项目部署
  6. DOM相关
  7. js-ES6学习笔记-Symbol
  8. bower 和 npm 的区别详细介绍
  9. Nginx的防爬虫优化
  10. 判断exe是64位还是32位