【问题标题】:Reverse Check digit algorithm反向校验位算法
【发布时间】:2017-02-23 15:23:15
【问题描述】:

我正在尝试对用于生成校验位的算法进行逆向工程。

数字长度为 8 位,最后一位是校验位。我有数千个有效数字可供测试。

我尝试了几种标准算法,但都没有提出任何结果

以下是一些有效数字的示例:

3482145 6
3482146 4
3482147 2
3482148 3
3482149 9
3482150 1
3482151 0
3482152 8
3482153 6
3482154 4
3482155 2
3482156 3
3482157 9
3482158 7
3482159 5
3482160 8
3482161 6

可以计算吗?有什么想法吗?

【问题讨论】:

  • "我尝试了几种标准算法" 请列出它们以及您决定如何排除它们。您是否考虑过窄 CRC?

标签: reverse-engineering


【解决方案1】:

您提供的数据量不足以充分评估算法。我现在唯一能看到的是序列64239xx8重复了两次,最后一位也是6。

恐怕不是一个实际的答案,但 StackOverflow 还不允许我离开 cmets。

【讨论】:

  • 啊,谢谢你的尝试,我已经想通了,它是一个 mod(10 或 11) 算法,有一些我无法找到的编辑,但我确实注意到如果代码增加 1,校验位将遵循以下顺序:8 6 4 2 3 9 7 5 3 1 0;
【解决方案2】:
The algorithm is this:
coef[]={4,2,1,6,3,7,9}
modulus 11
Case 10->0
Case 0->3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-30
    • 2016-11-23
    • 2016-01-31
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    相关资源
    最近更新 更多