随机数生成,任意长度

        String createData(int length) {
        StringBuilder sb = new StringBuilder();
        Random rand = new Random();
        for (int i = 0; i < length; i++) {
            sb.append(rand.nextInt(10));
        }
        String data = sb.toString();
       return  data;
    }

可以根据输入的length生成合适长度的随机数,非常方便

 

//以下将在Windows上创建SUN SHA1PRNG 
//默认配置和Sun JRE,以及Solaris / Linux
//如果在java.security中修改securerandom.source
SecureRandom sr1 = new SecureRandom();

//以下将创建SUN SHA1PRNG如果最高 
//优先级CSP是SUN
SecureRandom sr2 = SecureRandom.getInstance(“SHA1PRNG”);

//以下将始终创建SUN SHA1PRNG
SecureRandom sr3 = SecureRandom.getInstance(“SHA1PRNG”,“SUN”);

根据Sun的文档,java.security.SecureRandom任何这些调用都不会返回返回的实例。如果在这些调用中的一个java.security.SecureRandom.nextBytes(byte[])被调用之后,则使用由底层操作系统提供的安全机制(从Windows中的JRE 1.4.1开始,在Linux和Solaris中以JRE 1.4.2开始)种下PRNG。如果在调用之前java.security.SecureRandom.setSeed(long)java.security.SecureRandom.setSeed(byte[])之后调用java.security.SecureRandom.nextBytes(byte[]),则旁路内部播种机制,只有提供的种子才能生成随机数。

对于那些不熟悉加密PRNG的内部工作的人来说,他们的工作就是采取一个相对较小的随机种子,并使用它来产生对于不知道种子是什么的人来说似乎随机的确定性输出。PRNG试图确保输出不显示有关种子的任何信息,并且观察输出的人不能在不知道种子的情况下预测未来的输出。

通过绕过SHA1PRNG的内部安全播种机制,您可能会危及PRNG输出的安全性。如果您使用攻击者可能预测的任何内容(例如,创建PRNG实例的时间),那么使用java.security.SecureRandom可能无法提供所需的安全级别。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javafanwk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值