2

我使用一个 php 脚本,它使用 php 的 crypt 对密码进行哈希处理并使用 SHA512,但是当我尝试检查是否设置了 SHA512 时,我得到了上述错误。当然我知道为什么我会收到这个错误.. php 缺少一些依赖项。我只是不知道那个依赖是什么。

谁能告诉我需要安装什么(在 Ubuntu 服务器上)才能在 PHP 中使用 SHA512?

谢谢!

4

3 回答 3

2

php 文档说 PHP 5.3.2 中添加了对 SHA-256 和 SHA-512 的内置支持。如果您使用任何早期版本的 PHP,它依赖于您的系统提供的那些算法的实现,而您的系统显然没有。

于 2010-12-02T19:41:36.163 回答
0

确保您拥有最新版本的 PHP5 并安装 mcrypt - 还包含许多其他加密方法,例如 rinjdael (AES)

于 2010-12-02T19:43:09.677 回答
0

最重要的是,您应该使用 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;
于 2010-12-02T19:52:19.260 回答