Использование неопределенной константы CRYPT_SHA512 - PullRequest
2 голосов
/ 02 декабря 2010

Я использую php-скрипт, который хэширует пароли с использованием php crypt и использует SHA512, однако, когда я пытаюсь проверить, установлен ли SHA512, я получаю вышеуказанную ошибку.Конечно, я знаю, ПОЧЕМУ я получаю эту ошибку .. php отсутствует некоторая зависимость.Я просто не знаю, что это за зависимость.

Может кто-нибудь сказать мне, что мне нужно установить (на сервере Ubuntu), чтобы иметь возможность использовать SHA512 в PHP?

Спасибо!* * 1005

Ответы [ 3 ]

2 голосов
/ 02 декабря 2010

В документации php говорится, что встроенная поддержка SHA-256 и SHA-512 была добавлена ​​в PHP 5.3.2.Если вы используете какие-либо более ранние версии PHP, он опирается на реализации этих алгоритмов, предоставляемых вашей системой, которых, очевидно, у вас нет.

0 голосов
/ 02 декабря 2010

Итог, вы должны использовать mcrypt, а не SHA512 или какой-либо хэш-стиль в стиле md5.Слишком легко их грубо дешифровать.Существует масса хороших ссылок на http://www.php.net/manual/en/function.mcrypt-generic.php и по всему Google.Ниже приведен пример хешированного URL-адреса 3DES с использованием ссылочной функции urlsafe_b64encode из 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;
0 голосов
/ 02 декабря 2010

Убедитесь, что у вас установлена ​​новейшая версия PHP5, и установите mcrypt, а также содержит множество других методов шифрования, таких как rinjdael (AES)

...