问题标签 [secure-random]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1582 浏览

java - 使用 RandomSecure 生成密钥对

无论如何我可以生成始终相同的私钥吗?我厌倦了使用相同的RandomSecure对象初始化KeyPairGeneratorseed

我调用上述函数并检查私钥是否相同:

它们是不同的,我的问题是有没有办法生成始终相同的私钥?

0 投票
3 回答
7748 浏览

android - SecureRandom 提供程序“Crypto”在 Android N 中无法用于确定性地生成密钥

用户可以购买我的应用程序的“专业”版本。当他们这样做时,我按如下方式存储并验证他们的购买。

  • 结合用户的 UUID 和另一个唯一字符串。
  • 然后使用静态种子对生成的字符串进行加密。我这样做是使用SecureRandom.getInstance("SHA1PRNG", "Crypto")- 这就是问题所在!
  • 生成的加密字符串就是“解锁码”。
  • 因此,我始终知道用户预期的唯一解锁码值。
  • 当用户购买“Pro”时,我将“解锁码”存储在数据库中。
  • 我通过查看数据库中存储的“解锁代码”是否与基于其唯一信息的预期代码匹配来检查用户是否拥有“Pro”。

所以,不是最好的系统,但对于我不起眼的应用程序来说,一切都已经足够模糊了。

问题是SecureRandom.getInstance("SHA1PRNG", "Crypto")在 N 上失败,因为不支持“加密”。我了解到,依赖特定的提供者是不好的做法,并且 Crypto 不受 N 支持。哎呀。

所以我有一个问题:我依靠价值种子对的加密来始终具有相同的输出。Android N 不支持我使用的加密提供程序,所以我不知道如何确保 N 上的加密输出与其他设备上的相同。

我的问题:

  1. 是否可以在我的 APK 中包含“加密”以便它始终可用?
  2. 在 Android N 上加密值-种子对时,我能否以其他方式确保相同的输出?

我的代码:

0 投票
1 回答
334 浏览

java - 安全随机哈希

我正在尝试查看是否可以基于安全随机散列获得正确的分布。我的第一个索引似乎总是加倍。我做错了什么吗

看看输出的第一行

0 投票
1 回答
375 浏览

java - 如何确定使用 SecureRandom 类在 java 中生成随机数的最安全方法

我想知道哪种方法是生成 0-255 范围内高度安全的随机数的最佳方法,而且具有快速性能。在我看来,我肯定必须使用 SecureRandom 类,但我不确定我是否必须使用 .getInstance(SHA1PRNG) 或者最好让它默认而不使用 arg 构造函数。

我介于这两种选择之间:

第一种方式

第二种方式:

我在这个网站上看到了很多其他答案,其中大多数人建议不要使用 SHA1PRNG 并让它默认,但另一方面,其他一些答案建议使用 NativePRNG(我不喜欢它,因为它不快)或 SHA1PRNG . 我想反馈一下哪种方式会产生高安全随机数,哪种方式最快。

提前致谢。

0 投票
1 回答
828 浏览

java - SecureRandom 自定义算法

出于测试目的,我需要使用SecureRandom自定义算法。这怎么可能?

我想我必须继承SecureRandom并提供一个SecureRandomSpi自定义实现:

有没有简单的方法或任何人都可以提供广告示例?

0 投票
3 回答
17939 浏览

java - 在java中生成随机字符串

我正在尝试使用 Secure Random 在 java 中的大写 AZ 之间生成一个字符串。目前我能够生成一个带有特殊字符的字母数字字符串,但我想要一个只有大写字母的字符串。

输入参数是输出字符串的长度 & id 是字母数字字符串。无法理解对上述代码进行哪些修改以仅生成大写字母字符串。请帮忙..

0 投票
1 回答
466 浏览

variables - 为什么要使用声明对象引用变量 static final?

我正在阅读 Java How to Program 第 10 版并阅读前几章。对于这个例子,我们展示了如何确保 SecureRandom 类,但有一部分让我完全困惑。

从书中,它提到它被声明为类的私有静态最终变量,SecureRandom因此一个对象总是被用来调用方法,rollDice(). 如果有一个程序包含多个 class 实例Craps,它们都将共享这个对象。我的问题是是否有可能SecureRandom需要多个类实例?下一个问题是,既然 this 是 的对象引用变量SecureRandom,为什么仍将其称为 的变量Craps

0 投票
4 回答
20274 浏览

java - UUID.randomUUID() 与 SecureRandom

我试图了解使用 UUID.randomUUID() 优于 SecureRandom 生成器的优势,因为前者在内部使用securerandom。

0 投票
1 回答
1794 浏览

java - 我应该用种子为我的 BCryptPasswordEncoder 初始化 SecureRandom 吗?

我只是在对同事任务进行代码审查,并遇到了以下代码行(他正在实现基于 Spring Security 的登录系统)。

SecureRandom用常量种子初始化这个特定的东西是个好主意吗?我不这么认为,但无法真正解释为什么。

0 投票
2 回答
937 浏览

java - 当用户单击否时,如何退出 JOptionPane 的 while 循环?

我正在尝试编写一个 while 循环(不是 do...while),一旦用户在 showConfirmDialog 窗口上单击“否”,该循环就会退出。但是,当我运行程序时,即使我单击“否”或尝试退出,它也会不断迭代循环。我怀疑这是因为我无法让 yesNO 变量等于 JOptionPane.NO_ANSWER,即使当我单击 No... 时它应该变成 NO_ANSWER 对?

我存储在变量 rand 和 number 中的 SecureRandom 代码不会在 answers 数组中生成随机数。我试过 Math.random() 但它没有用,但我想使用 SecureRandom 来生成随机数组索引。

我的 while 循环的最后一行没有用空字符串替换 userInput 值。它只是在输入第一个问题的情况下迭代循环。所以即使我想留在那个无限循环中,它甚至不会记录我输入的新问题......

我怎样才能让它在用户单击否时退出循环,SecureRandom 代码每次都会生成不同的答案索引(目前它只显示索引 19 非常可疑),并且 userInput 变量被更改为空白字符串?或至少用下一次迭代的输入替换当前字符串