【发布时间】:2019-01-21 20:16:08
【问题描述】:
使用 PHP 7,我的网站不再正常工作。我试过网站上的推荐:https://gist.github.com/odan/c1dc2798ef9cedb9fedd09cdfe6e8e76,但还是不行。谁能帮帮我?
错误信息:
致命错误:未捕获的错误:调用 /is/htdocs/wp12891720_A49KPJUSEX/www/chat.php:115 中未定义的函数 mcrypt_encrypt() 堆栈跟踪:#0 /is/htdocs/wp12891720_A49KPJUSEX/www/chat.php(131 ): Crypt::encode('5c46ea88788a0aa...', Array) #1 {main} 在 /is/htdocs/wp12891720_A49KPJUSEX/www/chat.php 第 115 行抛出
class Crypt {
static public function encode($key, $password) {
$key .= date('Y-m-d H');
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), json_encode($password), MCRYPT_MODE_CBC, md5(md5($key))));
}
}
【问题讨论】:
-
这个怪物到底应该做什么?请不要告诉我这是某种身份验证系统的一部分。
-
open_ssl通常是你想要使用的,你也可以使用 PHPSecLib 这是一个非常好的库。 -
1.密码需要散列,而不是加密。 2. 为什么要将当前时间附加到密钥上? 3. 为什么
json_encode()ing 密码? 4. IV 应该是随机的,而不是派生的。最后但并非最不重要的一点是,mcrypt 的 Rjindael 密码与任何其他库都不兼容,您需要重新编码所有内容。借此机会对您的密码进行哈希处理。 secure.php.net/manual/en/function.password-hash.php -
那个代码让我做噩梦...
标签: php web encryption