Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java生成8位OTP_Java_Android - Fatal编程技术网

用java生成8位OTP

用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

在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(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))