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