【发布时间】:2020-07-29 22:31:29
【问题描述】:
从今天开始,我在我的网站上使用 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;
我已经用这个函数替换了,但它没有返回相同的输出。
function encrypt_128($string){
return rtrim(base64_encode(openssl_encrypt($string, 'aes-256-ecb', $key, OPENSSL_RAW_DATA)));
我读到 mcrypt 不使用填充,我尝试添加 OPENSSL_ZERO_PADDING 但它不能再加密用户的电子邮件地址,并且不返回任何输出。 我需要该函数来产生相同的输出,因为新用户可以使用与旧用户相同的电子邮件地址进行注册。
【问题讨论】:
-
大注意 不必加密数据以避免SQLInjection
-
注:我说过,如果碰巧不要避免。这就像用户数据的额外安全性。