对于允许银行/电汇的支付系统,我需要可靠地将支付与它们所针对的相应用户帐户相关联。为此,用户应在与他的帐户关联的转账中包含一个参考号。
我想用内置冗余(额外符号)生成这个数字,这样我就可以检测和纠正最多 N 个以下(可能是常见的)错误:
- 序列中的符号不正确(错字)
- 两个符号的交换(我猜这与两个不正确的符号相同)
- 序列中缺少符号
- 序列中的额外符号
我搜索了一下,似乎 Reed Solomon 或 BCH 是常用的代码。我唯一找不到的是它们是否支持最后一种情况,即额外的符号。
另外,我希望代码有一个故障模式,它说:“这太糟糕了,我无法修复它”,而不是给我一个随机的“更正”结果。我想我可以简单地通过生成稀疏的参考号来做到这一点,并希望它不太可能意外地碰到一个有效的参考号,但我宁愿有这样的东西:“我最多可以纠正 5 个错误,但如果它是超过3个,我放弃。”
有什么想法吗?谢谢!