Проверка криптонставок и хешей — что обычно стоит глянуть?
Прокручиваю периодически настройки криптографии и работу с хешами, потому что с ними часто косяки, а иногда кажется, что всё работает, а на самом деле где-то ошибка затаилась. Вот что обычно проверяю буквально первым делом:
Кто работал с этим на практике? Интересует именно реальный опыт, а не общая теория.
Я обычно просто смотрю, чтобы алгоритм хеша был актуальный, и сравниваю результат с тестовыми данными. Часто проблемы возникают из-за неправильной кодировки или смешивания строк с байтами, это почти всегда на косяк вылазит.
Я обычно сначала проверяю, что хеш считается с правильной кодировкой и что алгоритм актуален. Потом сверяю результат с эталонными данными, чтобы исключить банальные ошибки. Иногда проблемы именно из-за перемешивания байт и строк, это банально, но ловишь баги быстро. Второй подход — просто тестить разные входы и контролировать, что не меняется формат данных по ходу.
Чаще всего у меня выручают простые проверки: удостоверяюсь, что хеш считается с нужной кодировкой и алгоритм не устарел. Потом просто сравниваю результат с тем, что должно быть по эталону, и если вдруг формат входных данных меняется — это почти всегда повод копать дальше, бо баги часто прячутся именно в этом.