Частые провалы с хешами и криптой — как не спалиться
Вечно вижу одни и те же ошибки, когда народ пытается работать с криптой и хешами. Например, куча кто продолжает юзать MD5 или SHA1, хотя всем давно известно, что они уже ни о чем. Потом бывает, что кто-то пытается «расшифровать» хеш напрямую, не понимая, что хеш — это не шифр и обратной функции у него нет, а правильно надо подбирать исходник или использовать радужные таблицы. Еще частая ошибка — игнорировать соли. Без соли хеши тупо однообразные, и если база слетит, бэдэнд рушится сразу.
Проверяйте, что используете современные алгоритмы (Bcrypt, Argon2), проверяйте, кто и как генерит соль, и не пытайтесь брать хеш и лупить его голыми переборами без GPU/специализированных методов. Если надо проверить, можно ли подобрать вход, лучше смотреть на контекст — может, стоит сделать проверку через брутфорс с реалистичной длиной, а не лезть в бездонную яму.
Стоит ли использовать тот же MD5 для паролей? Ни в коем случае. А вот для контрольных сумм файлов — запросто, если смысл — просто проверка целостности, а не безопасность. В крипте всегда думайте, зачем и куда, а не «пусть будет просто хеш». С кем-то сталкивались, кто забывает соль или юзает смехотворные длины паролей в хеше? Как обычно выкручиваетесь?