Проверка настроек криптографии и хешей — кто как это организует?
За последние пару недель копался с проектом, где нужно было быстро проверить, как у меня настроена криптография и обработка хешей. Там часто натыкаюсь на то, что у разных сервисов и библиотек поведение отличается — например, алгоритмы шифрования, соль, формат вывода хешей. В итоге решил сделать небольшой прогон всего, чтобы понять, где могут быть косяки.
Если у вас есть похожая история, расскажу, что у меня получилось. Первое — проверить, что выбранные алгоритмы поддерживаются и действительно работают в заданной версии ПО. Второе — важный момент — правильно ли подаётся соль и в каком виде, часто на неё тупят и ломают логику. Третье — убедиться, что кодировка и формат вывода хеша совпадают с тем, что ожидает потребитель (иногда из-за пробелов или перевода строки идут глюки). Для этого у меня в процессе тестирования легкий скрипт, который создаёт хеш и тут же проверяет обратную проверку.
Если настройка с криптографией хромает, можно сразу заметить баги вроде несовпадения хеша с оригиналом, неправильного преобразования. К слову, в разных языках и библиотеках поведение даже одинаковых методов может отличаться — особенно с преобразованием байт в строки. Поэтому тесты делаю на маленьких удобных данных.
Ребят, кто как проверяет свои настройки криптографии и хешей, в какие моменты цепляетесь? Чем обычно проверяете соответствие и корректность?
Ха, я тоже раньше путался с этими солями и форматами вывода — пару вечеров проторчал, пока не понял, что у них везде свои фишки. Сейчас просто делаю пару тестов на простых данных и смотрю, чтобы не было никаких лишних пробелов или новых строк в хеше. Главное — не слепо копировать код, а проверять, что реально совпадает, иначе потом чинить баги не хватит ни времени, ни нервов.