Java如何生成随机的12个字节?
下文笔者讲述使用java代码生成随机字节的方法分享
随机12个字节(96位)
java生成随机字节的方法
实现思路: 使用SecureRandom.nextBytes(byte[] bytes) 生成用户指定数量的随机字节
随机12个字节(96位)
package com.java265.crypto;
import java.security.SecureRandom;
public class HelloCryptoApp {
public static void main(String[] args) {
byte[] nonce = new byte[12];
new SecureRandom().nextBytes(nonce);
System.out.println(convertBytesToHex(nonce));
}
//转换字节为16字节
private static String convertBytesToHex(byte[] bytes) {
StringBuilder result = new StringBuilder();
for (byte temp : bytes) {
result.append(String.format("%02x", temp));
}
return result.toString();
}
}
随机产生20个字节(160位)
byte[] nonce = new byte[20];
new SecureRandom().nextBytes(nonce);
System.out.println(convertBytesToHex(nonce));
随机32字节(256位)+ DRBG算法
package com.java265.java11;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
public class HelloCryptoApp2 {
public static void main(String[] args) throws NoSuchAlgorithmException {
byte[] nonce = new byte[32];
SecureRandom rand = SecureRandom.getInstance("DRBG");
rand.nextBytes(nonce);
System.out.println(convertBytesToHex(nonce));
}
private static String convertBytesToHex(byte[] bytes) {
StringBuilder result = new StringBuilder();
for (byte temp : bytes) {
result.append(String.format("%02x", temp));
}
return result.toString();
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。