我使用一个 php 脚本,它使用 php 的 crypt 对密码进行哈希处理并使用 SHA512,但是当我尝试检查是否设置了 SHA512 时,我得到了上述错误。当然我知道为什么我会收到这个错误.. php 缺少一些依赖项。我只是不知道那个依赖是什么。
谁能告诉我需要安装什么(在 Ubuntu 服务器上)才能在 PHP 中使用 SHA512?
谢谢!
php 文档说 PHP 5.3.2 中添加了对 SHA-256 和 SHA-512 的内置支持。如果您使用任何早期版本的 PHP,它依赖于您的系统提供的那些算法的实现,而您的系统显然没有。
确保您拥有最新版本的 PHP5 并安装 mcrypt - 还包含许多其他加密方法,例如 rinjdael (AES)
最重要的是,您应该使用 mcrypt,而不是 SHA512 或任何 md5 样式的哈希。暴力破解它们太容易了。在http://www.php.net/manual/en/function.mcrypt-generic.php和整个 google上都有很多很好的参考资料。下面是一个使用来自http://www.php.net/manual/en/function.mcrypt-generic.php#71135的参考函数 urlsafe_b64encode 的 3DES 散列 URL 示例
$key = "what can i tell you";
$request = http_build_query($_REQUEST);
$request_enc = urlencode(urlsafe_b64encode(mcrypt_ecb(MCRYPT_3DES, $key, $request, MCRYPT_ENCRYPT)));
$url = "http://localhost/takemerightthere/".$request_enc;