我使用了一个php脚本,它使用php的crypt隐藏密码并使用SHA512,但是当我尝试检查是否设置了SHA512时,出现上述错误。当然,我知道为什么我得到这个错误.. PHP是缺少一些依赖。我只是不知道那个依赖是什么。使用未定义的常量CRYPT_SHA512
任何人都可以请告诉我需要安装(在Ubuntu服务器上)以便能够在PHP中使用SHA512?
谢谢!
我使用了一个php脚本,它使用php的crypt隐藏密码并使用SHA512,但是当我尝试检查是否设置了SHA512时,出现上述错误。当然,我知道为什么我得到这个错误.. PHP是缺少一些依赖。我只是不知道那个依赖是什么。使用未定义的常量CRYPT_SHA512
任何人都可以请告诉我需要安装(在Ubuntu服务器上)以便能够在PHP中使用SHA512?
谢谢!
php文档说,在PHP 5.3.2中添加了对SHA-256和SHA-512的内置支持。如果您使用任何早期版本的PHP,它依赖于您的系统提供的这些算法的实现,显然您的系统没有这些算法。
底线了很多,你应该使用mcrypt的,不SHA512或任何MD5风格散列器。暴力破解它们太容易了。在http://www.php.net/manual/en/function.mcrypt-generic.php以及全谷歌有很多很好的参考。下面是使用参考函数urlsafe_b64encode的一个3DES哈希URL的示例http://www.php.net/manual/en/function.mcrypt-generic.php#71135
$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;
这似乎并不适用于密码,但它不应该是可解密的。 – Naatan 2010-12-02 20:38:19
谢谢,就是这样。 – Naatan 2010-12-02 19:50:53