带有校验和的唯一静态长度ID



数据库中有一些用户的ID是自动递增的(1,2,3,…999999)。我需要的是从user_ID生成一个看起来随机的静态长度(例如8个或10个字符)的ID,它可以解码回原始ID,很像哈希函数,但可以反转,基本上看起来像编码/加密。不需要任何安全措施。为什么我需要这个?用户应该在终端中输入他的ID并进行小额现金支付,因此如果他的ID是5656并且他无意中输入6565,则他的支付将进入6565的账户,因为存在具有这种ID的账户。但是当他的ID是3783479238时,例如,37834792是5656的编码版本,最后两位数字(38)是校验和(为了检查完整性,条形码或信用卡号都有这样的东西),没有办法为其他用户付费。

PHP函数/库会很棒,但如果你有其他语言(c、java等)的函数/库,或者只是数学函数,我不会介意。

谢谢。

这完全取决于您希望支票的强度和长度:

  • 最简单的是,如果你把所有的单个数字加在一起,这个数字的模是9。这是对信用卡号码进行的检查
  • 在荷兰,11 check用于银行账号和社会保障号码。这里有一个荷兰语的解释,但你可以得到数字
  • 在一个40英尺的集装箱上,有一个额外的数字,它给出的集装箱编号也是模校验。你必须在谷歌上搜索那个

最新更新