【问题标题】:php from mcrypt to opensslphp 从 mcrypt 到 openssl
【发布时间】: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
  • 注:我说过,如果碰巧不要避免。这就像用户数据的额外安全性。

标签: php openssl mcrypt


【解决方案1】:

事实证明这不是让这成为可能的方法 我刚刚解密了我的所有数据并用新算法重新加密它们。这花了很长时间,但这是一个必要的改变。 如果有人知道如何随时发布答案。

【讨论】:

    猜你喜欢
    • 2019-07-23
    • 2017-10-15
    • 2011-04-04
    • 2018-08-16
    • 2017-09-05
    • 2012-04-17
    • 2014-02-24
    • 2020-07-17
    • 2015-10-09
    相关资源
    最近更新 更多