小编And*_*lth的帖子

生成包含字母数字和特殊字符的随机字符串?

我有兴趣生成具有以下属性的(安全)随机字符串:

  1. 至少 1 个大写字母
  2. 至少 1 个小写字母
  3. 0-9 至少 1 位数字
  4. 至少一个特殊字符来自字符 $&@?<>~!%#

字符串的长度应为 12-13 位/字符长。

我知道 Apache commons 中有一个类可以帮助生成随机字符串,但是没有包含特殊字符的选项。

我也知道关于 SO 的其他一些类似问题,但是它们都没有完全解决这些要求。

到目前为止,我已经尝试了以下方法:

import java.security.SecureRandom;

public final class SessionIdentifierGenerator {
  private SecureRandom random = new SecureRandom();

  public String nextSessionId() {
    return 

    new BigInteger(130, random).toString(32);
      }
    }
Run Code Online (Sandbox Code Playgroud)

但它不包含来自 4 个点中的每一个的字符集。

我也试过:

static final String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static Random rnd = new Random();

String randomString( int len ) 
{
   StringBuilder sb = new StringBuilder( len );
   for(int i = 0; …
Run Code Online (Sandbox Code Playgroud)

java string random passwords

0
推荐指数
1
解决办法
5014
查看次数

标签 统计

java ×1

passwords ×1

random ×1

string ×1