我需要创建一个网站,允许客户在线查看他们的帐户状态信息。为了避免创建客户网站帐户的麻烦,我希望他们只需使用他们的帐号和访问代码登录即可。我想从帐号中生成访问代码,我会在他们邮寄的账单上提供代码。
从 8 位数字帐号生成此访问代码的好公式/功能/方法是什么?结果可能是数字或字母,但我不希望它超过 10 个字符。我想保持数学相当简单,以便在打印报表时可以通过水晶报表公式生成代码。我不是在寻找防弹安全,因为这不是敏感信息。我只是想防止有人随机输入帐号。
我需要创建一个网站,允许客户在线查看他们的帐户状态信息。为了避免创建客户网站帐户的麻烦,我希望他们只需使用他们的帐号和访问代码登录即可。我想从帐号中生成访问代码,我会在他们邮寄的账单上提供代码。
从 8 位数字帐号生成此访问代码的好公式/功能/方法是什么?结果可能是数字或字母,但我不希望它超过 10 个字符。我想保持数学相当简单,以便在打印报表时可以通过水晶报表公式生成代码。我不是在寻找防弹安全,因为这不是敏感信息。我只是想防止有人随机输入帐号。
我要做的是将帐号一分为二(使用模块化算术),然后对这两部分进行一些数学运算以得出授权码。
例如:
I'm assuming account number is atleast 10000, if they start at 00000001, then you will have to add a step to multiply it by 10,000 (which will result in larger auth codes for the bigger account numbers) or reduce the modulus size
Let A = account number
A mod 10,000 = X
(A - X) / 10,000 = Y
AuthCode = (X + 51) * (Y + 89)
所以如果帐号是 18654848:
18654848 % 10000 = 4848
(18654848 - 4848) / 10000 = 1865
(4848 + 51) * (1865 + 89) = 4899 * 1954
= 9572646
然后在用户尝试登录时执行相同的数学运算,并查看验证码和该号码是否匹配。
这将使身份验证码在 103538 - 101384400 范围内