gpt4 book ai didi

Java之谜: need a stable random that persistes in a JVM but is different in another JVM

转载 作者:行者123 更新时间:2023-12-01 08:12:20 25 4
gpt4 key购买 nike

我需要找到一种方法从 JVM 获取不需要存储的(某种程度上)随机字符串或数字。但在 JVM 的生命周期中我会多次需要它,因此对此方法的后续调用必须返回相同的值。此外,在 JVM 重新启动后,相同的代码必须产生不同的但仍然稳定的值。随机性的质量并不重要,只要它足够难以猜测即可。

最佳答案

只需在不同的虚拟机中以不同的方式播种随机值即可。

public class MyClass {
private int myStableRandomValue = new Random( System.currentTimeMillis() ).nextInt();
...
}

编辑:

如果您确实不想存储该值,您可以使用进程 ID 为上面的 Random 方法播种,并在每次请求该值时调用它 - if 潜在攻击者无权访问进程 ID。

     private int getMyStableRandomValue() { 
return new Random( getProcessID() ).nextInt();
}

关于Java之谜: need a stable random that persistes in a JVM but is different in another JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16289197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com