How to generate a SecureRandom string of length n in Java?
本问题已经有最佳答案,请猛点这里访问。
我正在生成一个随机字符串,使用:
1 2 3 4 5 6 | private String generateSafeToken() { SecureRandom random = new SecureRandom(); byte bytes[] = new byte[512]; random.nextBytes(bytes); return bytes.toString(); } |
这将给出长度为11的字符串,如
我不明白为什么在这里提到的"重复"问题不能回答问题时,这个标记为"重复"。无论如何,我要找的答案都在下面,以防它对其他人有帮助。
1 2 3 4 5 6 7 8 | private String generateSafeToken() { SecureRandom random = new SecureRandom(); byte bytes[] = new byte[20]; random.nextBytes(bytes); Encoder encoder = Base64.getUrlEncoder().withoutPadding(); String token = encoder.encodeToString(bytes); return token; } |
bytes.toString();错误,如果要将其转换为字符串,请尝试使用array.toString(bytes)或new string(bytes)。