php7.0 openssl_encrypt如何加密-PHP7

资源魔 44 0
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加密

抱歉,评论功能暂时关闭!