我正在写一小块软件。
让我们假设以下情况:一个人想要向银行账户付款,并且需要输入参考号。收件人要求将号码“2345”作为付款参考,以便他可以识别付款并将参考号/付款追溯回该人。
问题:有时用户输入错误的参考号。例如:“2345”键入“234”或“23455”,这会造成混淆。
一种可能的解决方案:生成这样的参考编号:?????????? 2345在哪里?是一个数字字符。因此,如果我们可以生成校验和或散列(???????????),那么可以将其解码为数字,然后追溯到2345.一个简单的例子:(2345 * 5)( 2345)=“11725 2345”。如果参考编号的第一部分除以5等于第二部分,则它是有效的参考编号。
“checksum / hash”必须是20个或更少的数字字符,因此我们可以附加一个6个字符的引用号(引用号必须少于26个字符)。
理想情况下,它是固定长度的(例如20个字符),可以通过php函数轻松解码。
我尝试过使用crc32,但据我所知,它不可逆转。
希望有人可以给我一个方向,这样我就可以深入研究这一点。一如既往,非常感谢!