Защита паролем PHP: md5 к sha512

Как я использую sha512 функция для PHP?

Я могу заменить все мой md5 функции с sha512 функция?

Я должен загрузить что-то раз так что?

Кто-либо может обеспечить примеры?

7
задан Benjamin 4 January 2014 в 15:54
поделиться

3 ответа

Функция hash() поставляемая с PHP >= 5.1, должна уметь генерировать хэши sha512 - вы можете проверить это, вызвав функцию hash_algos() в которой перечислены поддерживаемые алгоритмы хэширования.


Например, вы можете использовать :

$sha512 = hash('sha512', "Hello, World!");
var_dump($sha512);

И вы получите :

string '374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387' (length=128)


И, на моей системе, следующая часть кода :

$supported = hash_algos();
var_dump($supported);

Указывает, что поддерживается 42 алгоритма хэширования :

array
  0 => string 'md2' (length=3)
  ...
  6 => string 'sha384' (length=6)
  7 => string 'sha512' (length=6)
  8 => string 'ripemd128' (length=9)
  9 => string 'ripemd160' (length=9)
  ...
  40 => string 'haval224,5' (length=10)
  41 => string 'haval256,5' (length=10)



Также, с PHP >= 5. 3, вы должны быть в состоянии использовать openssl_digest() функцию :

$sha512 = openssl_digest("Hello, World!", 'sha512');
var_dump($sha512);

(Да, параметры не в том же порядке, как в hash() -- магия PHP, вот...)

И, чтобы получить список поддерживаемых алгоритмов, вы можете использовать openssl_get_md_methods().

На моей системе эта функция дает 22 поддерживаемых алгоритма.

6
ответ дан 7 December 2019 в 14:30
поделиться

Контрольные суммы предназначены для генерации контрольных сумм, HMAC , возможно, является предпочтительным способом генерации солевых хэшей строк, требующих безопасного хеширования.

hash_hmac('sha512', 'important string', 'salt');
0
ответ дан 7 December 2019 в 14:30
поделиться

Просто из любопытства, почему вы хотите заменить функцию MD5?

Она относительно эффективна. Если вы добавите соль, это действительно раздражает при обратном проектировании. Кому-то придется перебирать все пароли в поисках совпадения. Без соли обычные короткие строки в нижнем регистре со всеми буквами были взломаны и сохранены в базе данных.

Я бы просто добавил соль и все в порядке.

-2
ответ дан 7 December 2019 в 14:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: