Android 密钥的随机字符?

Android 密钥的随机字符?,android,Android,我使用以下代码为密钥生成随机字符: int randomNumber; Random randomNumberGenerator = new Random(); randomNumber = randomNumberGenerator.nextInt(26) + 65; if(passkey.length() != 20){ while (passkey.length() != 20){ passkey += (char)randomNumber; r

我使用以下代码为密钥生成随机字符:

int randomNumber;
Random randomNumberGenerator = new Random();
randomNumber = randomNumberGenerator.nextInt(26) + 65;

if(passkey.length() != 20){
    while (passkey.length() != 20){
        passkey += (char)randomNumber; 
        randomNumber = randomNumber + 5;
    }
}
在代码中,有时我会添加5或1等


如何使随机字符为数字或字母数字而不是任何标点符号?

将要使用的字符放入字符串中,并在字符串中选择随机位置。这样,您还可以排除容易混淆的字符,如O和0。

将要使用的字符放入字符串中,并在字符串中选择随机位置。这样,您还可以排除容易混淆的字符,如O和0。

请看一个示例。您将看到数字对应于整数48-57,大写字母对应于整数65-90,小写字母对应于字母97-122注意:所有数字都以10为底

在这些范围之间有一些差距,即58-64和91-96。您需要更改randomNumber的计算,使其介于48和122之间,同时排除这些范围

似乎更合适;我建议这样做。为了完整起见,我将把这个答案保留在这里。

看一看。您将看到数字对应于整数48-57,大写字母对应于整数65-90,小写字母对应于字母97-122注意:所有数字都以10为底

在这些范围之间有一些差距,即58-64和91-96。您需要更改randomNumber的计算,使其介于48和122之间,同时排除这些范围

似乎更合适;我建议这样做。为了完整起见,我将把这个答案保留在这里。

使用以下代码

创建没有任何特殊字符的随机数

谢谢 Deepak使用以下代码

创建没有任何特殊字符的随机数

谢谢 迪帕克

private String generateRandomID(){

            final int ID_SIZE = 16;
            final int NUM_OF_CHARS = 62;
            StringBuffer id = new StringBuffer();
            long now = new Date().getTime();

            // Set the new Seed as current timestamp
            Random r = new Random(now);

            int index = 0;
            int x = 0;

            while(x < ID_SIZE){
                  index = r.nextInt(NUM_OF_CHARS);
                  System.out.println("Index="+ index);
                  if(index < 10){
                        id.append((char)(48 + index));
                  }
                  else if(10 <= index && index <36){
                        index = index - 10;
                        id.append((char)(65 + index));
                  }else{
                        index = index - 36;
                        id.append((char)(97 + index));
                  }
                  x++;
            }

            return id.toString();
      }