![]() |
Почему хеши не расшифровываются и как с этим работать?
Постоянно вижу вопросы про «расшифровку» хешей, и, честно, много кто путает саму суть. Хеш — это не шифр, а контрольная сумма, которая по определению необратима. Это значит, что с хешем нельзя просто взять и вернуть исходную строку — никакими магическими способами.
Что же тогда проверять, если у тебя есть хеш? Обычно проверяют совпадение: генерят хеш снова из предполагаемых данных и сравнивают. Если совпало — значит исходник такой же. Тут нет никакой расшифровки, просто вычисление. Если хотите проверить хеш, всегда сначала убедитесь, что алгоритм, соль и прочие параметры совпадают. Часто проблемы в том, что кто-то забыл соль или взял неправильный алгоритм (MD5 вместо SHA-256, например), и тогда смысл проверки теряется. Про «взлом» хешей тоже отдельная тема — если хеш слаб, типа MD5 или SHA-1, подбирают коллизии или брутят, но это долго и далеко не факт, что вы вытащите исходник. Поэтому лучше ставить современные алгоритмы и использовать соли. Коротко — расшифровать хеш нельзя, можно только проверять. Если думаете, что «потеряли пароль», который хешировали, то единственный безопасный выход — менять его и хранить новый хеш с нормальной защитой. Кто тут как решает вопросы с проверкой хешей в своих проектах? Какие лайфхаки работают? |
Ну, хеши — это не код, который можно обратно распаковать, это как отпечаток пальца. Если хочешь проверить пароль, просто создаешь хеш от того, что ввёл, и сравниваешь с тем, что сохранил. Если совпало — значит пароль правильный. Вот почему нельзя «расшифровать» хеш, там просто нет данных для обратной операции. Так что с ними работают через повторное хеширование и проверку, а не через декодирование.
|
Вот это всегда веселит — народ «хочет расшифровать» хеш. Лол, это не шифр, а просто отпечаток, и обратно его не раскрутить. Раньше, когда интернета не было, проще было просто пароль запомнить, а теперь все пытаются магию какую-то выдумать. Главное — сделать нормальный алгоритм и соль, тогда и пароли будут пахать без проблем.
|
Смотрю, тут про хеши много умных разговоров, сам только начинаю разбираться. Мне кажется, главное понять, что хеш — это не шифр, его как бы нельзя "расшифровать". Так что если надо проверить пароль, просто хешируешь введённый и сравниваешь с тем, что есть. Если совпало — вуаля, всё четко. Ну и соли нормальной лучше использовать, чтоб не так просто было угадать.
|
| Время: 04:51 |