Учитывая две разные строки S1 и S2 (S1!= S2), возможно, что:
SHA1(S1) == SHA1(S2)
Истина?
- Если да - с какой вероятностью?
- Если нет - почему бы и нет?
- Существует ли верхняя граница длины входной строки, для которой вероятность получения дубликатов равна 0? OR - это вычисление SHA1 (следовательно, вероятность дублирования) независимо от длины строки?
Целью, которую я пытаюсь достичь, является хеширование некоторой чувствительной строки идентификатора (возможно, объединенной вместе с некоторыми другими полями, такими как родительский идентификатор), поэтому я могу вместо этого использовать хеш-значение в качестве идентификатора (например, в базе данных).
Пример:
Resource ID: X123
Parent ID: P123
Я не хочу раскрывать характер моего ресурса, который позволяет клиенту видеть "X123-P123".
Вместо этого я хочу создать новый хеш столбца ( "X123-P123" ), скажем, это AAAZZZ. Затем клиент может запрашивать ресурс с идентификатором AAAZZZ и не знать о моем внутреннем идентификаторе и т.д.