字母数字otp生成器每次返回相同的值

时间:2017-10-16 05:55:14

标签: java random secure-random

我一直在尝试编写一个简单的java程序,每次都显示随机的字母数字。但是我得到的结果与 [C @ a3a380

相同
import java.util.*;
import java.security.*;

public class NumericOTPGenerator 
{
    public static void main(String args[])
    {
        int length=5;
        System.out.println("OTP : "+generateOTP(length));
    }
    static char[] generateOTP(int length)
    {
        String capitalChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String smallChars = "abcdefghijklmnopqrstuvwxyz";
        String numbers = "0123456789";
        String symbols = "!@#$%^&*_=+-/.?<>)";
        String values = capitalChars + smallChars + numbers + symbols;
        char[] generatedOTP = new char[length];
        SecureRandom rand = new SecureRandom();
        for (int i = 0; i < length; i++)
        {
            generatedOTP[i] = values.charAt(rand.nextInt(values.length()));

        }
        return generatedOTP;
    }
}

请建议如何解决此问题。

0 个答案:

没有答案