【问题标题】:mcrypt_encrypt & mcrypt_decrypt doesn't work on localhostmcrypt_encrypt & mcrypt_decrypt 在本地主机上不起作用
【发布时间】:2019-06-19 17:29:15
【问题描述】:

我使用 mcrypt_decrypt 并加密到我的实时网站。现在,我想更改一些代码并在 localhost 上进行测试。加密/解密在我的实时网络上运行良好,但在 localhost 上却不行。我回显每个加密变量以查看是否有值,但似乎根本不起作用。有什么想法吗?

$secret_key ="qazxsw";
$email="myemail1@email.com"; 

$encrypted_data = trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secret_key, $email, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));


echo $encrypted_data ;

编辑:XAMPP-5.6.3

【问题讨论】:

  • 不要使用该代码。这是不安全的。
  • 您有什么建议吗? @Scott Arciszewski
  • 是:如果您要存储密码,请使用 password_hash()password_verify()。否则,请使用github.com/defuse/php-encryption,它为您提供经过身份验证的加密(即它实际上是安全的)。
  • @ScottArciszewski。我要加密和解密的是电子邮件地址,我使用了不同类型的加密和解密方法。但它以不同的输出解密加密数据。此代码帮助我使用与原始电子邮件相同的解密方法。

标签: php encryption mcrypt


【解决方案1】:

您已收到此错误,因为您使用的此算法不支持 8 个字符键,

请将您的$secretkey="" 增加到代码下方的 16 个字符

<?PHP
$secret_key ="qazxswqazxswqazx";
$email="myemail1@email.com"; 

$encrypted_data = trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secret_key, $email, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));


echo $encrypted_data ;
?>

输出:

F2GUGzXHKXZruXDpAwMWBeSzwcRKS+CYl/ekUt+dHto=

【讨论】:

  • 我的电脑上好像没有安装插件。你能指导我如何安装它。我正在使用窗口 7 操作系统
  • xkevin 您在 lacal 上使用的服务器。 xampp wamp 等?
  • 我本地的服务器是xampp。
  • 你检查过 phpinfo();功能安装了吗?
  • 我附上了一张图片。
【解决方案2】:
function encryptIt( $value ) {
        $cryptKey  = 'qJB0rGtIn5U453G03efyCp';

        $qEncoded  = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), $value, MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ) );
        return( $qEncoded );
    }

【讨论】:

    猜你喜欢
    • 2015-02-25
    • 2011-02-15
    • 2015-03-19
    • 2018-01-02
    • 2017-07-22
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多