MD5 и SHA-1 хэши имеют слабые стороны от столкновений. SHA256 не только выводит 256 бит. Можно ли безопасно взять первый или последний 128 бит и использовать это как хэш? Я знаю, что он будет слабее (потому что у него меньше бит), но в противном случае он будет работать?
В основном я хочу использовать это, чтобы уникально идентифицировать файлы в файловой системе, которые в один прекрасный день могут содержать триллион файлов. Я знаю о проблеме дня рождения, и 128-битный хеш должен дать около 1 триллиона шансов на триллион файлов, которые будут иметь два разных файла с одинаковым хэшем. Я могу жить с этими факторами.
То, с чем я не могу жить, - это если кто-то может легко, намеренно вставить новый файл с тем же хэшем и теми же начальными символами файла. Я верю в MD5 и SHA1, это возможно.