Как я использую sha512
функция для PHP?
Я могу заменить все мой md5
функции с sha512
функция?
Я должен загрузить что-то раз так что?
Кто-либо может обеспечить примеры?
Функция 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 поддерживаемых алгоритма.
Контрольные суммы предназначены для генерации контрольных сумм, HMAC , возможно, является предпочтительным способом генерации солевых хэшей строк, требующих безопасного хеширования.
hash_hmac('sha512', 'important string', 'salt');
Просто из любопытства, почему вы хотите заменить функцию MD5?
Она относительно эффективна. Если вы добавите соль, это действительно раздражает при обратном проектировании. Кому-то придется перебирать все пароли в поисках совпадения. Без соли обычные короткие строки в нижнем регистре со всеми буквами были взломаны и сохранены в базе данных.
Я бы просто добавил соль и все в порядке.