有没有一个最安全的'要散列的数据量?

时间:2016-10-12 10:13:55

标签: hash md5 sha1 checksum crc

我想将一些数据发送到设备,我需要验证一致性。没有攻击者,可能只有硬件故障。

在我的情况下,Maximmum数据大小约为256kB。

我对小尺寸算法以及小尺寸哈希感兴趣。可以使用CRC8,CRC16,CRC32以及MD5或SHA1之类的东西。 SHA2哈希对我来说太大了。

是否存在实际数据大小限制的一般规则?

2 个答案:

答案 0 :(得分:0)

没有。 sha 1散列是全局唯一的意图和目的,并且算法不会因非常大的输入而分解。如果更改单个位,则哈希值应更改。

答案 1 :(得分:0)

您需要了解频道的错误特征以及您的应用可接受的误报率。有多少次出错?改变位数的分布是什么?您偶尔会翻转一个位,或者是否有大量的位翻转,或者在出现错误时整个消息是否存在?翻转的位是否彼此靠近,即错误是否以突发形式发生?

一般情况下,您不会使用加密哈希,因为与CRC相比,计算它所花费的时间增加将无法获益。您应该使用CRC或其他哈希,例如xxhash系列中的哈希。它们非常快,并且能够以低概率产生误报。 CRC具有防止突发错误的特殊属性,即几个相邻或几乎相邻的位翻转。