原加密方法 使用mcrypt

//获得16位随机字符串,填充到明文之前
$random = $this->getRandomStr();
$text = $random . pack("N", strlen($text)) . $text . $appid;
$iv = substr($this->key, 0, 16); $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); //使用自定义的填充方式对明文进行补位填充
$pkc_encoder = new PKCS7Encoder;
$text = $pkc_encoder->encode($text);
mcrypt_generic_init($module, $this->key, $iv);
//加密
$encrypted = mcrypt_generic($module, $text);
mcrypt_generic_deinit($module);
mcrypt_module_close($module);

新加密方法 使用openssl

//获得16位随机字符串,填充到明文之前
$random = $this->getRandomStr();
$text = $random . pack("N", strlen($text)) . $text . $appid;
$iv = substr($this->key, 0, 16); $encrypted = openssl_encrypt($text, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);

原解密方法 使用mcrypt

$ciphertext_dec = base64_decode($encrypted);
$iv = substr($this->key, 0, 16); $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
mcrypt_generic_init($module, $this->key, $iv); //解密
$decrypted = mdecrypt_generic($module, $ciphertext_dec);
mcrypt_generic_deinit($module);
mcrypt_module_close($module);

新加密方法 使用openssl

$ciphertext_dec = base64_decode($encrypted);
$iv = substr($this->key, 0, 16); $decrypted = openssl_decrypt($ciphertext_dec, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);

最新文章

  1. web前端基础知识-(六)jQuery-补
  2. iOS9的几个新关键字(nonnull、nullable、null_resettable、__null_unspecified)
  3. Css Js Loader For Zencart
  4. ROW_NUMBER over (order by **)
  5. 最全的Resharper快捷键汇总
  6. Nginx如何设置拒绝或允许指定ip访问
  7. Python开发入门与实战7-Django Form
  8. redis 多数据库
  9. PKU 2406 Power Strings(KMP最长循环不重叠字串)
  10. MongoDB入门三步曲3--部署技术:主备、副本集和数据分片
  11. .net 微信APP支付接口的开发流程以及坑
  12. 1787: [Ahoi2008]Meet 紧急集合
  13. Iframe刷新页面
  14. Circle
  15. PHP中文关键词匹配
  16. 用Python制作中国地图、地球平面图及球形图
  17. ALTER SYSTEM ARCHIVELOG CURRENT挂起案例
  18. Django之Django终端打印SQL语句
  19. BZOJ5091 摘苹果 BZOJ2017年11月月赛 概率,期望
  20. Singer 学习十一 配置以及状态管理

热门文章

  1. 安装libvirt管理套件(C/S架构模式,用户管理kvm虚拟机)
  2. 树莓派无显示器、无网线,优盘(U盘)启动,远程桌面
  3. django的第一个问题
  4. 使用salt-cloud创建虚拟机
  5. 【设计模式】C++中的单例模式
  6. LoadRunner脚本参数化常见错误
  7. HDU2993_MAX Average Problem
  8. BZOJ 2152 聪聪可可(树形DP)
  9. 【JavaScript】JAVA-input如何占满整个td
  10. Django获取多个数据及文件上传