Хеши в деле: почему расшифровка не всегда работает и что с этим делать
Заметил, что многие начинают пытаться "расшифровать" хеш и сразу же облом — хеши ведь не шифр, их понять напрямую нельзя. Поэтому стоит сначала понять, зачем вообще пытаешься работать с хешем. Если нужно проверить, что пароль совпадает, лучше сохранить соль и применять тот же алгоритм, а не пытаться восстановить исходник.
Проверка хеша — это обычно сравнение, а не расшифровка. А если речь о подборе пароля по хешу, то тут уже нужен список слов или радужные таблицы, но и это сработает только для слабых алгоритмов и несложных паролей.
При выборе алгоритма для своих проектов лучше сразу отказаться от MD5 и SHA1 — они уже считаются дырявыми и не защищают. Лучше смотреть в сторону SHA256+солью или вообще bcrypt, scrypt, argon2 — это реально надёжнее.
Если уже попался хеш без соли, то шанс подобрать пароль выше, но и тут всё зависит от длины и сложности пароля. Так что при работе с хешами всегда держи в голове: это не дешифровка, а проверка по совпадению. Плюс чем лучше алгоритм и соль, тем сложнее это сделать.
Кто как обычно с этим заморачивается и что советуете для начинающих, чтобы не юзать устаревшее и не лезть в бессмысленное?