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 回答。