Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ReplicatedRandom — Java Random 状态复制工具,通过从观察到的输出中恢复内部状态来预测未来的随机值,展示基于 LCG 的 PRNG 的弱点。 | Kitploit
工具/GitHubGitHub/fta2012/replicatedrandom
漏洞利用密码学学习与教育
GitHubfta2012/replicatedrandom

ReplicatedRandom

Java Random 状态复制工具,通过从观察到的输出中恢复内部状态来预测未来的随机值,展示基于 LCG 的 PRNG 的弱点。

查看仓库
1201319年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Node (MWC1616)

参见 node 文件夹中的 README

Java (LCG)

给定一个由 java.util.Random 的 nextDouble 生成的 double,重建一个具有相同状态的 Random。这个 ReplicatedRandom 随后可用于预测原始 Random 的未来值。

示例:

root@kitploit:~
Random r = new Random();
ReplicatedRandom rr = new ReplicatedRandom();
rr.replicateState(r.nextDouble());
System.out.println(r.nextDouble() == rr.nextDouble()); // True
System.out.println(r.nextDouble() == rr.nextDouble()); // True
System.out.println(r.nextDouble() == rr.nextDouble()); // True

由于 Math.random() 在内部使用 Random,因此它也同样适用:

root@kitploit:~
ReplicatedRandom rr = new ReplicatedRandom();
rr.replicateState(Math.random());
System.out.println(Math.random() == rr.nextDouble()); // True
System.out.println(Math.random() == rr.nextDouble()); // True
System.out.println(Math.random() == rr.nextDouble()); // True

nextInt() 也同样适用,但需要两个连续的值:

root@kitploit:~
Random r = new Random();
ReplicatedRandom rr = new ReplicatedRandom();
rr.replicateState(r.nextInt(), r.nextInt());
System.out.println(r.nextInt() == rr.nextInt()); // True
System.out.println(r.nextInt() == rr.nextInt()); // True
System.out.println(r.nextInt() == rr.nextInt()); // True

有关详细信息,请参见这篇博客文章。

下载工具