В новой системе нам требуется односторонний хэш для вычисления цифровой подписи из двоичного ввода (например, килобайт текста или большие текстовые и двоичные файлы). Потребность аналогична тому, как Scons (сборка системы) хеширует командные строки и исходные файлы и как Git (система управления версиями) хэширует файлы для вычисления подписи для хранения/синхронизации.
Вспомним, что Scons использует MD5, а Git использует SHA-1.
В то время как MD5 и SHA-1 были "сломаны", ни Scons, ни Git не используют свои хэши специально для безопасности (например, не хранить пароли), поэтому общая практика по-прежнему считает эти алгоритмы приемлемыми для этого использования. (Конечно, это частично рационализация из-за унаследованного наследия.)
ВОПРОС: Не могли бы вы использовать SHA256 (а не MD5 или SHA-1) для однонаправленного хэша (не крипто/безопасность) в новой системе?
Вы можете:
- MD5 и SHA-1 имеют долгую историю принятия
- SHA256 относительно новый (не так много истории), но как представляется, в настоящее время рекомендуется для новой работы (но "Сильная" сила алгоритма не специально для моего приложение)
- SHA256 более дорого стоит времени вычислить
- SHA256 производит более длинный ключ (эти будут использоваться как имена файлов/файлов и хранится в индексных файлах), но я предположим, что я мог бы усечь (хэш менее сильный, но должно быть достаточно), или просто предположим, что хранение дешево, и файловые системы могут его обрабатывать.
Меня особенно интересовал бы ответ, отвечающий сообществам Scons или Git, говорящим: "Мы будем держать нас навсегда!" или "Мы хотим как можно скорее перейти к новому хешу!" (Я не уверен, каковы их планы?)