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若何加密的具体内容,更多请存眷资源魔其它相干文章!
标签: php7开发教程 php7开发资料 php7开发自学 openssl_encrypt加密
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!