Hash 生成一个简单的访问代码以查看帐户信息

Hash 生成一个简单的访问代码以查看帐户信息,hash,encryption,Hash,Encryption,我需要创建一个网站,允许客户在线查看他们的帐户状态信息。为了避免创建客户网站帐户的麻烦,我希望他们只需使用帐号和访问代码登录即可。我希望访问代码是从账号生成的,我会在他们邮寄的对账单上提供代码 从8位数字账号生成此访问码的好公式/函数/方法是什么?结果可以是数字或字母,但我不希望它超过10个字符。我希望保持数学相当简单,以便在打印语句时可以通过crystal reports公式生成代码。我不是在寻找防弹安全,因为这不是敏感信息。我只是想防止有人随意输入帐号 我要做的是使用模块化算法将账号一分为二

我需要创建一个网站,允许客户在线查看他们的帐户状态信息。为了避免创建客户网站帐户的麻烦,我希望他们只需使用帐号和访问代码登录即可。我希望访问代码是从账号生成的,我会在他们邮寄的对账单上提供代码


从8位数字账号生成此访问码的好公式/函数/方法是什么?结果可以是数字或字母,但我不希望它超过10个字符。我希望保持数学相当简单,以便在打印语句时可以通过crystal reports公式生成代码。我不是在寻找防弹安全,因为这不是敏感信息。我只是想防止有人随意输入帐号

我要做的是使用模块化算法将账号一分为二,然后对这两部分进行一点数学运算,得出授权代码

例如:

我假设帐号至少为10000,如果它们从00000001开始,那么您必须添加一个步骤,将其乘以10000,这将导致更大帐号的验证码更大,或者减少模数大小

设A=账号

A模10000=X

A-X/10000=Y

验证码=X+51*Y+89

如果账号是18654848:

18654848%10000=4848

18654848-4848/10000=1865

4848+51*1865+89=4899*1954

=9572646

然后,当用户尝试登录时,执行相同的数学运算,查看身份验证代码和该数字是否匹配


这将使身份验证代码在103538-101384400范围内

您可以从crystal报告中执行任何类型的哈希SHA-1,还是生成随机数?或者你只是想做一些简单的数学?你能在你这边存储一些东西吗?当他们登录时,你可以为他们授权吗?不幸的是,我正在连接一个遗留计费系统的数据转储,并且试图避免存储除我得到的数据文件之外的任何额外内容。这就是为什么我希望访问代码以帐号为基础。这也是我试图在Crystal中的语句运行时生成它的原因。看起来Crystal不支持哈希函数,所以简单的数学可能是最好的。这将非常有效。简单的水晶配方。谢谢你抽出时间来帮我。