У меня есть около 1500 байт данных, для которых я хочу построить контрольную сумму, чтобы, если данные были повреждены, шансы на то, что контрольная сумма все еще соответствовала данным, были меньше, чем, скажем, 1 из 10 ^ 15, т.е. достаточно низкая вероятность, что я могу обработать это, как это никогда не произойдет.
Вопрос в том, сколько бит я должен вычислить? У меня есть вычисление sha-160, которое дает мне 160-битный хэш моих данных, но я ожидаю, что это намного больше, чем необходимо. Поэтому я думаю, что мог бы обрезать полученный хеш, чтобы сказать младшие 40 бит, и использовать это как достаточно большой битовый шаблон, который, если данные будут повреждены, я, скорее всего, обнаружу это.
Таким образом, вопрос двоякий: сколько битов достаточно, и является ли использование младших битов хэша sha-160 хорошим подходом?