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