为transaction-id创建校验和/可逆哈希

时间:2014-07-17 09:52:22

标签: php

我正在写一小块软件。

让我们假设以下情况:一个人想要向银行账户付款,并且需要输入参考号。收件人要求将号码“2345”作为付款参考,以便他可以识别付款并将参考号/付款追溯回该人。

问题:有时用户输入错误的参考号。例如:“2345”键入“234”或“23455”,这会造成混淆。

一种可能的解决方案:生成这样的参考编号:?????????? 2345在哪里?是一个数字字符。因此,如果我们可以生成校验和或散列(???????????),那么可以将其解码为数字,然后追溯到2345.一个简单的例子:(2345 * 5)( 2345)=“11725 2345”。如果参考编号的第一部分除以5等于第二部分,则它是有效的参考编号。

“checksum / hash”必须是20个或更少的数字字符,因此我们可以附加一个6个字符的引用号(引用号必须少于26个字符)。

理想情况下,它是固定长度的(例如20个字符),可以通过php函数轻松解码。

我尝试过使用crc32,但据我所知,它不可逆转。

希望有人可以给我一个方向,这样我就可以深入研究这一点。一如既往,非常感谢!

0 个答案:

没有答案