我有以下数字。这是一个14位数的标识号。前13个数字(从左数起)是数字本身,第14个数字(最小数位)是完整性校验码。我尝试了许多组合,但未能获得完成此完整性检查的公式。 :

decimal, 14 dig.| hexadecimal  | binary (grouped)
--------------------------------------
//effect of the least (decimal) digit
2840115110085 6 | 19d4a885c7b8 | 1100 1110 1010 0101 0100 0100 0010 1110 0011 1101 1100
2840115110086 4 | 19d4a885c7c0 | 1100 1110 1010 0101 0100 0100 0010 1110 0011 1110 0000
2840115110087 2 | 19d4a885c7c8 | 1100 1110 1010 0101 0100 0100 0010 1110 0011 1110 0100
2840115110088 1 | 19d4a885c7d1 | 1100 1110 1010 0101 0100 0100 0010 1110 0011 1110 1000
2840115110089 9 | 19d4a885c7e3 | 1100 1110 1010 0101 0100 0100 0010 1110 0011 1111 0001
//effect of changing 7th digit from left.
2840113000000 2 | 19d4a743ce82 | 1100 1110 1010 0101 0011 1010 0001 1110 0111 0100 0001
2840114000000 1 | 19d4a7dc6501 | 1100 1110 1010 0101 0011 1110 1110 0011 0010 1000 0000
2840115000000 9 | 19d4a874fb89 | 1100 1110 1010 0101 0100 0011 1010 0111 1101 1100 0100
2840116000000 7 | 19d4a90d9207 | 1100 1110 1010 0101 0100 1000 0110 1100 1001 0000 0011
2840117000000 5 | 19d4a9a62885 | 1100 1110 1010 0101 0100 1101 0011 0001 0100 0100 0010
2840118000000 3 | 19d4aa3ebf03 | 1100 1110 1010 0101 0101 0001 1111 0101 1111 1000 0001
2840119000000 1 | 19d4aad75581 | 1100 1110 1010 0101 0101 0110 1011 1010 1010 1100 0000
2840110000000 8 | 19d4a57a0b08 | 1100 1110 1010 0101 0010 1011 1101 0000 0101 1000 0100


评论

从左数(固定问题)。它是一个黑匣子,您传递了13位数字,它为您提供了完整性校验数字。我要更换黑匣子。

您能给我们全0和全1的完整性检查位吗?也许还有其他这样的最终案例?

@NirIzr:这是一个十进制数字,而不是单个位。

在什么情况下使用此数据?您能蛮力完整性检查代码吗?

您能给我们更多的价值吗?至少有20个连续值的范围,还有一些带有转位数字的值,以及系统地更改倒数第二个非校验和数字的效果。

#1 楼

大多数完整性检查使用一些代数编码。代数编码具有基础,因此,如果您有足够的样本,则可以重构所使用的代数基础。