php7.0 openssl_encrypt如何加密

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

php7.0 openssl_encrypt如何加密

php5.4版本mcrypt_encryp提升到php7.0 openssl_encrypt,加密字段不一样。

今天有个加密,使用的加密字段和key,加密模式都一样,可是加密后的数据不一样,这是代码片段

<?php     $privateKey = "qewrvxffbfdhsfdgh";     $iv    = "234253454354352";     $data  = "测试用的数据";     $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateKey, $data, MCRYPT_MODE_CBC, $iv);     echo(base64_encode($encrypted));     echo "\n"; >
登录后复制

加密后的数据是gHXA5vo5hEMxjthYNq/gborXWNETPw0rYEb2FspAYzc=

下面是使用php7.0版本以上不支持mcrypt_encryp函数进行加密的代码

<?php     $privateKey = "qewrvxffbfdhsfdgh";     $iv    = "234253454354352";     $data  = "测试用的数据";     $encrypted=  openssl_encrypt($data,'aes-128-cbc', $privateKey, OPENSSL_RAW_DATA, $iv); echo(base64_encode($encrypted));     echo "\n"; >
登录后复制

加密后是gHXA5vo5hEMxjthYNq/gbtwwm1TlRzsRBI64TrEo3P8=

1.gHXA5vo5hEMxjthYNq/gborXWNETPw0rYEb2FspAYzc=

2.gHXA5vo5hEMxjthYNq/gbtwwm1TlRzsRBI64TrEo3P8=

是不是不一样,这样加密出来的数据不仔细查看,会认为是一样的数据。

要想保证加密一样,将php7.0的代码修改如下

<?php     $privateKey = "qewrvxffbfdhsfdgh";     $iv    = "234253454354352";     $data  = "测试用的数据";if (strlen($data) % 16) {            $data = str_pad($data,strlen($data) + 16 - strlen($data) % 16, "\0");        } $encrypted=  openssl_encrypt($data, 'AES-128-CBC',$privateKey,OPENSSL_NO_PADDING,$iv);     echo  (base64_encode($encrypted));
登录后复制

加密后的数据是gHXA5vo5hEMxjthYNq/gborXWNETPw0rYEb2FspAYzc=,这样就保持一致了。

本文来自php7教程栏目,欢迎学习。

以上就是php7.0 openssl_encrypt如何加密的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。

作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:jquery替换元素的方法
下一篇:Laravel开发:如何使用Laravel Telescope诊断和优化应用程序?

发表评论

关闭广告
关闭广告