我有一个用户案例,其中涉及生成一个用户输入网站以将交易链接到他们的帐户的数字。
所以我有以下代码生成一个随机的 12 位数字:
public String getRedemptionCode(long utid, long userId) {
long nano = System.nanoTime();
long temp = nano + utid + 1232;
long redemptionCode = temp + userId + 5465;
if (redemptionCode < 0) {
redemptionCode = Math.abs(redemptionCode);
}
String redemptionCodeFinal = StringUtils.rightPad(String.valueOf(redemptionCode), 12, '1');
redemptionCodeFinal = redemptionCodeFinal.substring(0, 12);
return redemptionCodeFinal;
}
此方法接受由数据库生成的两个参数。
我需要了解的是:
这是随机的吗?我有一个测试该方法运行了 100 万次,而且它似乎总是随机的。
我可以将其减少到 8 个字符吗?