1

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

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

4

1 回答 1

0

我要做的是将帐号一分为二(使用模块化算术),然后对这两部分进行一些数学运算以得出授权码。

例如:

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 范围内

于 2012-05-31T19:44:27.537 回答