首页 > 编程语言 >php mcrypt转openssl

php mcrypt转openssl

时间:2023-11-24 15:56:11浏览次数:38  
标签:aes openssl iv str mcrypt php 256

由于新版本的php不支持mcrypt,改成支持openssl  所以记一下常用函数的改变

1

mcrypt_get_block_size($this->mcrypt, $this->mode);
改成了
openssl_cipher_iv_length("aes-256-cbc")
//aes-256-cbc是加密算法 openssl_cipher_iv_length("aes-256-cbc") 是一个函数调用,用于获取 AES-256-CBC 加密算法的初始化向量长度。在实际使用中,这个函数会返回一个整数值,表示指定加密算法的初始化向量长度。

2
mcrypt_create_iv
改成了
bin2hex(openssl_random_pseudo_bytes(openssl_cipher_iv_length("aes-256-cbc")));
//openssl_random_pseudo_bytes用于生成指定长度的伪随机字节序列,长度就是上面获取到的初始化向量长度。注意生成的是二进制文本,要用bin2hex 转成16进制 一般用这个生成iv

3
mcrypt_encrypt($this->mcrypt, $this->key, $str, $this->mode, $this->iv);
改成
if (strlen($str) % 16) {
$str = str_pad($str,strlen($str) + 16 - strlen($str) % 16, "\0");
}

openssl_encrypt($str,"aes-256-cbc",$this->key,OPENSSL_NO_PADDING,$this->iv);
//自动填充容易出问题,改成手动填充 第一个值是字符串,第二个值是加密算法,第三个值是密钥,第四个值是加密选项,我这点选项是不自动填充,最后的值是iv
4
mcrypt_decrypt($this->mcrypt, $this->key, $str, $this->mode, $this->iv);

改成
openssl_decrypt($str,"aes-256-cbc", $this->key, OPENSSL_NO_PADDING, $this->iv);
//参数同上




标签:aes,openssl,iv,str,mcrypt,php,256
From: https://www.cnblogs.com/zhengyb-bolg/p/17853955.html

相关文章

  • php Post请求
    在php调用一个Post请求接口/***PHP发送Json对象数据**@param$url请求url*@param$jsonStr发送的json字符串charset=utf-8*@returnarray*/functionhttp_post_json($url,$jsonStr){$ch=curl_init();curl_setopt($ch,CURLOPT_POST,1);......
  • PHP医院手术麻醉信息系统源码,实现手术申请与排班、审批、安排、术前、术中和术后的信
    医院手术麻醉信息系统全套商业源码,自主版权,支持二次开发手术麻醉信息系统是HIS产品的中的一个组成部分,主要应用于医院的麻醉科,属于电子病历类产品。医院麻醉监护的功能覆盖整个手术与麻醉的全过程,包括手术申请与排班、审批、安排、术前、术中和术后的信息管理提供支持。手术麻醉信......
  • 开源在线客服系统源码PHP(H5网页在线客服系统小程序源码uniapp全套搭建)
    现代客户服务的重要性得到了越来越多的认可。一个优质的客户服务可以使客户在购买和使用产品、寻求技术支持时获得更好的体验,从而建立起品牌声誉和客户忠诚度。为了优化客户服务体验,许多企业已经开始使用客服系统来更好地管理、响应和交互客户需求。源码:kf.zxkfym.top......
  • 20232303 关于OpenSSL的学习
    关于OpenSSL的学习sm2加密解密请忽略原来遗留下的文件,它们与本任务无关,只看新生成的文件就好。问题与解答-opensslecparam-nameSM2-genkey-outsm2-key.pem这是一个使用OpenSSL工具生成SM2密钥的命令。opensslecparam是OpenSSL的椭圆曲线操作命令。-name......
  • 一个基于php+mysql的外卖订餐网站(带源码)
    订饭组一个基于php+mysql的外卖订餐网站,包括前端和后台。测试账号:admin密码:admin运行环境:Apache+PHP+Mysql代码说明htaccessRewrite配置文件,需要放入到项目根目录configs.php需要配置数据库连接信息(主机、用户名、密码),系统常量等data.sql位于data目录中,是数据库备份文件,需要提......
  • ThinkPHPP5.0 Queue
    composer安装think-queue#tp5.0composerrequiretopthink/think-queue=1.1.6 --no-plugins#tp5.1.xcomposerrequiretopthink/think-queue2.0.4 --no-plugins#tp6composerrequiretopthink/think-queue --no-plugins验证安装结果phpthinkqueue:work......
  • ThinpPHP5.0 微信小程序登录
    创建WxUserModel类<?phpnamespaceapp\api\model;useapp\common\controller\Api;usethink\Model;//引入tp框架的Model类usethink\Db;//引入tp框架的Db类usethink\Cache;//引入tp框架的缓存类classWxuserextendsApi{private$appId;private......
  • php 多图片下载
    参考链接:https://www.cnblogs.com/sanplit/p/6483432.htmlpublicfunctiondownAllImageQrcode(){$data=QrcodeProductImage::field(['id','image'])->where('is_delete','0')->select()->toArray();foreach($data......
  • Docker部署phpMyAdmin
    一、简介phpMyAdmin是众多MySQL图形化管理工具中使用最为广泛的一种,是一款使用PHP开发的基于B/S模式的MySQL客户端软件,该工具是基于Web跨平台的管理程序,并且支持简体中文,用户可以在官网上下载最新版本的。phpMyAdmin为Web开发人员提供了类似Access,SQLServer的图形化......
  • php压缩json数据
    最近在优化一个页面:ajax请求异步数据,特定情况下,json数据达到100MB左右,仅数据传输时间就需要10-20s左右,简直太慢了。检索资料看怎么压缩json数据有效的方法:ob_start('ob_gzhandler');//压缩数据header('Content-Type:application/json');$data=[];for($i=0;$i<10......