生成密码随机数据
要生成加密随机数据的样本:
final byte[] sample = new byte[16];
new SecureRandom().nextBytes(sample);
System.out.println("Sample: " + DatatypeConverter.printHexBinary(sample));
产生的输出类似于:
Sample: E4F14CEA2384F70B706B53A6DF8C5EFE
注意,根据所使用的算法,对 nextBytes()
的调用可能会阻塞,同时收集熵。
要指定算法和提供程序:
final byte[] sample = new byte[16];
final SecureRandom randomness = SecureRandom.getInstance("SHA1PRNG", "SUN");
randomness.nextBytes(sample);
System.out.println("Provider: " + randomness.getProvider());
System.out.println("Algorithm: " + randomness.getAlgorithm());
System.out.println("Sample: " + DatatypeConverter.printHexBinary(sample));
产生的输出类似于:
Provider: SUN version 1.8
Algorithm: SHA1PRNG
Sample: C80C44BAEB352FD29FBBE20489E4C0B9