Java如何生成随机的12个字节?

乔欣 Java经验 发布时间:2023-01-31 17:19:54 阅读数:12968 1
下文笔者讲述使用java代码生成随机字节的方法分享

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();
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202301/16751578345599.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者