1

我迫切希望找到一种算法来创建一个最多两个字符长的校验和,并且可以识别输入序列中字符的混淆。在测试不同的算法时,例如 Luhn、CRC24 或 CRC32,校验和总是比两个字符长。如果我将校验和减少到两个甚至一个字符,则不再识别所有换向。

你们中有人知道满足我需求的算法吗?我已经有了一个可以继续搜索的名字。我将非常感谢您的帮助。

4

1 回答 1

1

假设您的数据是字母数字的,您想要检测所有排列(在完美的情况下),并且您可以使用二进制校验和(即完整的 16 位),我的猜测是您可能应该使用CRC-16(正如@Paul Hankin 在评论中所建议的那样),因为与LuhnDamm等校验位算法相比,它的信息更密集,并且在涉及可能的错误类型时更“通用”。

也许像CRC-CCITT (CRC-16-CCITT)之类的东西,你可以在这里试一试,看看它是如何为你工作的。

于 2017-01-14T09:59:34.417 回答