用java生成8位OTP
在java中生成8位OTP,第一位数字为零。 我在Java中尝试了用java生成8位OTP,java,android,Java,Android,在java中生成8位OTP,第一位数字为零。 我在Java中尝试了Math()函数,但它给出的第一个数字是不带零的随机数。 建议我一个最简单的方法来实现相同的静态最终长度=8; static final LENGHT = 8; Random randomizer = new Random(); StringBuilder builder = new StringBuilder(); for(i = 0; i <= LENGHT; i++) { builder.append(rand
Math()
函数,但它给出的第一个数字是不带零的随机数。
建议我一个最简单的方法来实现相同的静态最终长度=8;
static final LENGHT = 8;
Random randomizer = new Random();
StringBuilder builder = new StringBuilder();
for(i = 0; i <= LENGHT; i++) {
builder.append(randomizer.nextInt(10));
}
String otp = builder.toString();
随机随机发生器=新随机();
StringBuilder=新的StringBuilder();
对于(i=0;i您应该使用SecureRandom
。请参阅
生成一个7位数的1,并添加一个零作为第一位数(标准Java中没有Math()
函数)如果将0作为第一个字母添加,则很难保持长度。使用格式,您可以做到这一点。@Martijn Pieters我请求使用8位OTP,其中0作为第一位数字。即使它被标记为duplicate@YogeshivuN你将一个答案标记为“已接受”,只是指向另一个问题这是重复的。
static final LENGHT = 8;
SecureRandom randomizer = new SecureRandom();
StringBuilder builder = new StringBuilder();
for(i = 0; i <= LENGHT; i++) {
builder.append(randomizer.nextInt(10));
}
String otp = builder.toString();
static final LENGHT = 7;
SecureRandom randomizer = new SecureRandom();
StringBuilder builder = new StringBuilder("0");
for(i = 0; i <= LENGHT; i++) {
builder.append(randomizer.nextInt(10));
}
String otp = builder.toString();
String.format("%08d", new SecureRandom().nextInt(10_000_000))