
java.security
类 SecureRandom
java.lang.Objectjava.util.Random
java.security.SecureRandom
所有已实现的接口:
Serializable
public class SecureRandomextends Random
此类提供加密的强随机数 (RNG)。许多实现都是伪随机数 (PRNG) 形式,这意味着它们将使用确认的算法依照实际的随机生成伪随机序列。其他实现可以生成实际的随机数,而另一些推动则或许结合使用这两项技术。
加密的强随机数至少要遵从《FIPS 140-2, Security Requirements for Cryptographic Modules》中 4.9.1 部分选定的统计随机数测试。另外,SecureRandom 还需要形成非确定性输出,因此,正如下面文章中所叙述的这样,要求材料需要是不可预知的,SecureRandom 的输出需要是加密的强序列:《RFC 1750:Randomness Recommendations for Security》。
与 Java Security 中其它基于算法的类一样,SecureRandom也提供了与推动无关的算法,因此,调用方(应用程序代码)会请求特定的 RNG 算法并将它传回到该算法的 SecureRandom对象中。如果必须,还可以借助特定的提供程序请求特定的算法。请参看 getInstance 方法。
因此,有下列两种请求 SecureRandom 对象的方式:仅指定算法名称securerandom,或者既选定算法名称又指定包提供程序。

SecureRandom 实现尝试完全随机化本身的外部状况,除非调用方在调用 getInstance 方法后来又调用了 setSeed 方法:
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
random.setSeed(seed);
在调用方从 getInstance 调用中获取 SecureRandom 对象但是,它可以调用 nextBytes 来生成随机字节:
byte bytes[] = new byte[20];
random.nextBytes(bytes);
调用方还可以调用 generateSeed 方法来生成给定的字节数(例如securerandom,为其它随机数量提供):
byte seed[] = random.generateSeed(20);
另请参见:
SecureRandomSpi, Random,
<!----><!---->
构造方法摘要
()
通过使用此构造方式,调用方可获取一个 SecureRandom 对象,该对象包括的推动来自带有 SecureRandom 实现的最高优先级已安装提供程序。
(byte[]seed)

通过使用此构造方式,调用方可获取一个 SecureRandom 对象,该对象包括的推动来自带有 SecureRandom 实现的最高优先级已安装提供程序。
(SecureRandomSpisecureRandomSpi,Providerprovider)
创建 SecureRandom 对象。
<!---->
<!---->
方法摘要
(intnumBytes)
返回给定的字节数量,该数目能使用这种用来为其自身提供的生成算法来计算。
()
返回此 SecureRandom 对象实现的算法的名称。
staticSecureRandom
(Stringalgorithm)
生成实现指定随机数 (RNG) 算法的 SecureRandom 对象。

staticSecureRandom
(Stringalgorithm,Providerprovider)
如果提供程序无法提供此种 RNG 实现,则为选定的 RNG 算法(由选定的提供程序提供)生成 SecureRandom 对象。
staticSecureRandom
(Stringalgorithm,Stringprovider)
如果提供程序无法提供此种 RNG 实现,则为选定的 RNG 算法(由选定的提供程序提供)生成 SecureRandom 对象。
()
返回此 SecureRandom 对象的提供程序。
staticbyte[]
(intnumBytes)
返回给定的字节数量,该数目能使用这种用来为其自身提供的生成算法来计算。
protected int
(intnumBits)

生成一个包含用户指定伪随机位数的小数(右对齐,带前导零)。
(byte[]bytes)
生成用户指定的随机字节数。
(byte[]seed)
重新提供此随机对象的。
(longseed)
使用给定 long seed 中包括的八个字节,重新提供此随机对象的。
<!---->
从类 java.util.Random 继承的方法
, , , , , ,
<!---->
从类 java.lang.Object 继承的方法
, , , , , , , , , ,
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-138475-1.html
马云其他的话我不提