ユーザーがトランザクションを自分のアカウントにリンクするために Web サイトに入力する番号を生成するユーザー ケースがあります。
だから私はランダムな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;
}
このメソッドは、DB によって生成される 2 つのパラメーターを受け取ります。
私が理解する必要があるのは次のとおりです。
これはランダムですか?このメソッドを 100 万回実行したテストがあり、常にランダムに見えます。
これを8文字に減らしてもいいですか?