php 从 mcrypt 到 openssl
php from mcrypt to openssl
从今天开始,我就在我的网站上使用 mcrypt 来加密用户的电子邮件地址。
php mcrypt 模块与 php 7.4 一起安装在我的最后一台服务器上,因此没有出现任何问题。
由于我需要更换托管公司,他们不会在他们的服务器上为我提供 mcrypt 安装。所以我需要更改 php 7.4 支持的功能。
如果发生 sql 注入,出于安全原因,我有这个功能来加密我的用户电子邮件地址。
function encrypt_128($string){
$string = rtrim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_ECB)));
return $string;
我已经用这个函数替换了它,但它 return 没有相同的输出。
function encrypt_128($string){
return rtrim(base64_encode(openssl_encrypt($string, 'aes-256-ecb', $key, OPENSSL_RAW_DATA)));
我读到 mcrypt 不使用填充,我尝试添加 OPENSSL_ZERO_PADDING 但它不能再加密用户的电子邮件地址,并且 returns 无输出。
我需要这个函数来生成相同的输出,因为新用户可以使用与旧用户相同的电子邮件地址进行注册。
事实证明,这不是使这成为可能的方法
我刚刚解密了我所有的数据并用新算法重新加密了它们。这花了很长时间,但这是一个必要的改变。
如果有人知道如何随意 post 回答。
从今天开始,我就在我的网站上使用 mcrypt 来加密用户的电子邮件地址。 php mcrypt 模块与 php 7.4 一起安装在我的最后一台服务器上,因此没有出现任何问题。 由于我需要更换托管公司,他们不会在他们的服务器上为我提供 mcrypt 安装。所以我需要更改 php 7.4 支持的功能。 如果发生 sql 注入,出于安全原因,我有这个功能来加密我的用户电子邮件地址。
function encrypt_128($string){
$string = rtrim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_ECB)));
return $string;
我已经用这个函数替换了它,但它 return 没有相同的输出。
function encrypt_128($string){
return rtrim(base64_encode(openssl_encrypt($string, 'aes-256-ecb', $key, OPENSSL_RAW_DATA)));
我读到 mcrypt 不使用填充,我尝试添加 OPENSSL_ZERO_PADDING 但它不能再加密用户的电子邮件地址,并且 returns 无输出。 我需要这个函数来生成相同的输出,因为新用户可以使用与旧用户相同的电子邮件地址进行注册。
事实证明,这不是使这成为可能的方法 我刚刚解密了我所有的数据并用新算法重新加密了它们。这花了很长时间,但这是一个必要的改变。 如果有人知道如何随意 post 回答。