Я заметил, что многие PHP-программы, такие как Joomla! или Wordpress preend "$ xx $." символов к их хешированным строкам. Это происходит, например, при хранении паролей пользователей в базах данных.
В чем причина этого?
ответ
$xx$
обозначает, какой алгоритм хэширования используется. Одна из причин, почему полезно, что это часть результирующей строки, заключается в том, что она позволяет вам иметь несколько типов хэшей в базе данных без каких-либо проблем, потому что вы не знаете, какой алгоритм хэширования был использован. Он также дает вам путь обновления, чтобы повысить безопасность ваших паролей.
Если вы используете crypt
, вы просто используете crypt($password, $hash) == $hash
и crypt
цифры из хэша, которые вы предоставляете, какой алгоритм использовать. Он также может извлекать соль и другие варианты (в зависимости от алгоритма).
Например, для sha256 вы получаете что-то вроде «$5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6
» (от http://php.net/manual/en/function.crypt.php). «5
» обозначает алгоритм хэширования, «rounds=5000
» - это вариант, который использует алгоритм хеширования, а «usesomesillystringforsalt
» - это соль, которая гарантирует, что хэши одного и того же пароля выглядят по-разному для разных людей и затрудняют грубые отношения, атаковать хэш. «KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6
» является фактическим хешированным паролем.
НЕТ, если он действительно читает '' usesomesillystringforsalt'', то разработчик ошибся, соль должна быть сгенерирована генератором случайных чисел, в противном случае могут применяться атаки. –
- 1. Что означают символы makefile $ ^?
- 2. Что означают символы \ x1a
- 3. Что означают эти символы «\ e6 ##»?
- 4. Что означают эти символы git?
- 5. Что означают символы в IRB?
- 6. Что означают символы в preg_match?
- 7. Что означают эти символы: $ [@, $ @, $ <
- 8. Что @ перед строкой Dart означают
- 9. Что означают символы доллара в коде C#?
- 10. Что означают эти символы в html?
- 11. Что означают эти символы для запуска оболочки?
- 12. Что означают символы/и || представляют в Coq?
- 13. Что означают символы во второй строке
- 14. Midnite commander ELF viewer - что означают символы?
- 15. Что означают эти символы ('' ') на языке python?
- 16. Что означают символы makefile $ @ и $ <mean?
- 17. Что означают символы в сетях баз данных?
- 18. Что означают эти символы (-fno-objc-arc)?
- 19. Что означают символы в заголовке строки DataGridView?
- 20. Что означают параметры BorderLayout?
- 21. Что означают «\\. \», «\ ?? \», «\\? \», «\\»?
- 22. Что означают две запятые?
- 23. Что означают эти ошибки HPROF?
- 24. Что такое -XX, -X и -d в java? и что такое -XX: + означает? что -XX: - означает?
- 25. Что означают знаки% в URL?
- 26. Что означает «\\? \» Перед дорогой?
- 27. Что означают * символы в этом описании шрифта X-окна?
- 28. Что означают графические значки и символы в Android Studio?
- 29. Что означают символы, начинающиеся с '\', а затем число, например '\ 234'?
- 30. Что означают разные символы в разделе API документации XCode?
Он обозначает используемый алгоритм хэширования. – towr
Определяет конкретный алгоритм хеширования. –