草庐IT

java - 有没有办法从数字序列中生成种子?

例如,如果java生成伪随机序列:93256通过使用23作为种子,我怎样才能做相反的事情?即从序列93256中获取23。或者如何为特定序列分配种子?如果有数据库就很容易做到——只需为序列分配一个随机键INSERTINTOSEQUENCE_TABLEVALUES(RANDOM_KEY,SEQUENCE)但是,如果不允许我使用数据库,是否有公式可以做这样的事情? 最佳答案 是的,对设计不当的伪随机数生成器的数字流进行逆向工程绝对容易,例如Java编程语言(java.util.Random)中的线性同余PRNG实现。事实上,只要来自特定生

java - java中的简单加密-无 key /密码

假设我有一个IP地址,192.168.1.1我希望我的程序基于此IP地址创建一个随机的单字字符串,无需key或密码或额外的安全措施即可轻松解密。例如。Ienter192.168.1.1ProgramconvertsittoAzlQrEHCSDorsomeotherrandomstringIenterthisstringintheprogramItgetsconvertedbackto192.168.1.1是否有任何简单的算法可以在不生成key或其他密码等内容的情况下执行此操作?我知道key和密码是加密和解密的必须,但我的场景不需要。 最佳答案

java - 在 Math.random() 上设置种子

我需要在调用Math.random()的Java代码上编写一些junit测试。我知道如果我正在实例化我自己的Random对象以产生可重复的结果,我可以设置种子。Math.random()是否也可以这样做? 最佳答案 Math.random()方法使用私有(private)静态字段:privatestaticRandomrandomNumberGenerator;如果您真的需要将其设置为newRandom(CONSTANT_SEED)(例如您需要JUNit测试您无法控制的代码),您可以通过使用反射来做到这一点。

java - SecureRandom 的行为

尽管在阅读了很多关于SecureRandom的文章之后,我还是对Java中SecureRandom安全API的使用产生了疑问。在下面的示例中。publicclassSecureRandomNumber{publicstaticvoidmain(String[]args)throwsNoSuchAlgorithmException{TreeSetsecure=newTreeSet();TreeSetunSecure=newTreeSet();SecureRandomsr=newSecureRandom();byte[]sbuf=sr.generateSeed(8);ByteBufferb

java - 在Java中生成字母数字随机字符串

这个问题在这里已经有了答案:Howtogeneratearandomalpha-numericstring(46个答案)关闭9年前。我正在使用另一个答案中的StringBuilder,但我只能使用字母/数字、无空格、标点符号等。你能解释一下如何限制这段代码中的字符集吗?另外,如何确保它的长度始终为30个字符?Randomgenerator=newRandom();StringBuilderstringBuilder=newStringBuilder();intLength=30;chartempChar;for(inti=0;i我看过其他大部分答案,但无法找出解决方案。谢谢。如果这是重

Java 随机颜色字符串

我写了这个java方法,但有时颜色字符串只有5个字符长。有谁知道为什么吗?@TestpublicvoidgetRandomColorTest(){for(inti=0;i"+s);}}publicStringgetRandomColor(){finalRandomrandom=newRandom();finalString[]letters="0123456789ABCDEF".split("");Stringcolor="#";for(inti=0;i 最佳答案 使用float和使用round并不是创建这种随机颜色的安全方法。实际

java - 生成非常大的随机数java

我们如何在java中生成非常大的随机数?我说的是10000位数字?我知道我们必须使用BigInteger但我们该怎么做呢?做这样的事情最有效的方法是什么?请提供一个小例子。谢谢。 最佳答案 嗯,一种方法是转到Random.org并下载一个二进制随机文件。这些文件是由大气噪声生成的,因此非常随机。我将它用于我的国际象棋引擎中的Zobrist键。或者你可以去BigIntegerb=newBigInteger(256,newRandom());这会给你你想要的。在这个例子中,一个由256位组成的BigInteger。

Java随机数不是随机的?

我试图向一位friend解释Java中的随机数生成器,但他每次运行该程序时总是得到相同的数字。我创建了我自己的同一事物的更简单版本,我也得到了他每次运行该程序时得到的完全相同的数字。我做错了什么?importjava.util.*;publicclassTestCode{publicstaticvoidmain(String[]args){intsum=0;Randomrand=newRandom(100);for(intx=0;x100中的最后五个数字是:4060275653 最佳答案 您已经为随机生成器设置了常量100。它是确定

java - 使用java创建一个没有数字重复的4位随机数

我使用java编写了一个代码来创建一个没有重复数字的随机4位数字,我编写的代码如下:-Randomr=newRandom();d1=r.nextInt(9);d2=r.nextInt(9);d3=r.nextInt(9);d4=r.nextInt(9);while(d1==d2||d1==d3||d1==d4||d2==d3||d2==d4||d3==d4){if(d1==d2||d2==d3||d2==d4){d2=r.nextInt(9);}if(d1==d3||d2==d3||d3==d4){d3=r.nextInt(9);}if(d1==d4||d2==d4||d3==d4){

java - 从 0-9 获得四个唯一随机数的最佳方法是什么?

这个问题在这里已经有了答案:GeneratingUniqueRandomNumbersinJava(21个回答)GenerateRandomNumbersinArray[duplicate](1个回答)关闭5年前。我想生成0到9范围内的四个随机数。使用JavaRandom类很容易生成四个随机数。Randomrandom=newRandom();intnumbers[]=newint[4];for(inti=0;i有了这个,我可以很容易地得到一个包含四个数字的数组,比如9369、4702等。在这种情况下,一个数字可能会以四个数字重复,我不希望这样的数字重复。在这里,我想让上面数组中的所有