В настоящее время я шифрую данные, поступающие в базу данных, используя код, который я нашел в Интернете, и в качестве введения в тему. Мой вопрос здесь проистекает из двух статей WikiHow (и относится именно к этим статьям): одна на авторизоваться шифрование; другой на безопасность сеанса. Обе статьи выглядят довольно хорошо; однако между ними есть одно критическое различие: первое утверждает, что определение JavaScript используемого алгоритма хеширования ($password = hash('sha512', $password . $salt)
требуется для PHP, сам для работы.
Даже с включением PHP hash()
метод (найден в обеих статьях), автор первых утверждает, что 'sha512'
само шифрование должно быть определенный внешне используя другой язык (автор предлагает JavaScript).
После прочтения документации по PHP у меня сложилось впечатление, что hash()
смог обработать серию заранее определенных алгоритмов хеширования, распознаваемых идентификатором, например, whirpool
, sha512
и т. д. Эти идентификаторы PHP можно получить через hash_algos()
(или вы можете просто прочитать документацию).
Я ошибаюсь, думая, что внешнее определение конкретного заранее определенного алгоритма хеширования не нужно?
Я не вижу необходимости использовать JavaScript для хеширования строки.
Лично я бы предпочел использовать bcrypt, а не sha512, но это нормально, это не совсем слабый алгоритм.
$password = hash('sha512', $password . $salt)
Это хороший способ хэширования ваших паролей, и если вы хотите сделать полный газ, вы можете посмотреть PBKDF2
http://en.wikipedia.org/wiki/PBKDF2
https://defuse.ca/php-pbkdf2.htm
Других решений пока нет …