2010-12-02 2 views
1

У меня есть приложение, которое работает на PHP 5.3, которое хранит пароли хэширования с помощью функции PHP crypt(). Однако используемый хеширующий тип (SHA 512) недоступен по умолчанию на одном из серверов, которые я сейчас использую, который запускает PHP 5.2. Я видел, что с mcrypt вы получаете гораздо большую гибкость, но это также сложнее в использовании.Может ли mcrypt выполнять те же алгоритмы, которые поддерживаются crypt()?

Возможно ли использовать функции mcrypt PHP для получения тех же результатов, что и при использовании crypt (используя соль SHA512)?

Так что, если я вводю «тест» с солью SHA512, зашифрованные данные должны быть одинаковыми при использовании crypt(), а также при использовании mcrypt().

Если это невозможно, может ли кто-нибудь дать мне совет о том, что еще нужно делать? К сожалению, обновление до PHP 5.3 не является вариантом (это облачный сервер, и у меня нет времени писать для этого сценарии).

ответ

1

К сожалению Mcrypt не имеет SHA512 шифра - вы посмотрите на список шифров здесь можно:

http://www.php.net/manual/en/mcrypt.ciphers.php

+0

Я вижу, хотя я, вероятно, мог бы переключиться на blowfish без особых проблем. Вопрос остался бы таким же, хотя, как я могу использовать mcrypt для возврата мне того же склепа данных? Видя, как склеп использует соли, и mcrypt, похоже, не делает этого. – Naatan 2010-12-02 22:02:36

1

Может кто-нибудь сказать мне, если это возможно, чтобы использовать функцию Mcrypt PHP5 для получить те же результаты, как и в склепе

No. Mcrypt предоставляет функции для шифрования и дешифрования. crypt, несмотря на свое обманное имя, предоставляет функции для хеширования. Это не одна и та же задача. Mcrypt не предоставляет никаких функций хеширования, а алгоритм, который вы хотите использовать (SHA-512), является алгоритмом хэширования.

Вы не можете использовать хэш-коды с Mcrypt. Это не его работа. Его роль и crypt 's разные и не перекрываются.