jjzjj

SecureRandom

全部标签

java - 如何根据密码在 Java 中创建 key 对?

我想让爱丽丝创建一对公钥/私钥,以便鲍勃可以发送她的secret消息。然而,我希望爱丽丝能够从任何地方检查她的消息,而她必须随身携带一个包含她的私钥的内存棒会很痛苦。有没有什么方法可以让爱丽丝根据她记得的密码创建一个公钥/私钥对?通过这种方式,她可以随时生成私钥(和公钥)。这个问题的简短版本是:我在哪里可以找到cryptico.js的Java等价物?.此外,here'sthesamequestion在StackOverflow上,但对于javascript。编辑:这是我对解决方案的第一次尝试:SecureRandomsaltRand=newSecureRandom(newbyte[]{

java - 比播种 SecureRandom 更好的创建 AES key 的方法

我需要将加密数据从Java客户端发送到C#服务器。现在我正在学习如何使用AES(要求)加密数据。按照这个接受的答案androidencryption/decryptionwithAES我正在执行以下操作:byte[]keyStart="qweroiwejrwoejlsifeoisrn".getBytes();//Randomcharacterstringbyte[]toEncrypt=myMessageString.getBytes();keyGen=KeyGenerator.getInstance("AES");sr=SecureRandom.getInstance("SHA1PRN

java - SecureRandom 的创建很慢,即使在 Java 8 中也是如此

我搜索了这个问题。我的印象是,它在Java8中得到了解决。但是突然之间,我开始在基于ubuntu14.04的新VM中遇到这个问题。2015-07-2714:56:35.324INFO11809---[localhost-startStop-1]o.a.c.util.SessionIdGeneratorBase:CreationofSecureRandominstanceforsessionIDgenerationusing[SHA1PRNG]took[167,833]milliseconds.Java版本是java-versionjavaversion"1.8.0_45"Java(TM

java - 重复使用 Java 的 SecureRandom

我对SecureRandom的用法有点困惑。我需要在循环中生成nsecure随机数。为每一代使用相同的SecureRandom实例是否安全?以下解决方案在加密强度方面是否存在差异?1)没有种子的单实例SecureRandomsr=newSecureRandom();for(inti=0;i2)每一代的新实例for(inti=0;i3)带种子的单实例SecureRandomsr=newSecureRandom()for(inti=0;i 最佳答案 也许与直觉相反,第三个几乎肯定是最弱的,在循环迭代中重新播种是一个糟糕的主意。第二个是坏

java - SecureRandom 的行为

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

java - 将 SecureRandom 与 SHA-256 结合使用

我一直在使用带有种子SHA1PRNG算法的SecureRandom来创建两个进程之间的共享随机性。我最近了解到,根据NIST的标准,SHA1正在被弃用,因此我们正在努力切换到SHA256。我发现的问题是SecureRandom仅支持SHA1PRNG,至少根据Oracle'sdocumentation是这样。.我想知道是否有办法将SecureRandom与SHA256一起使用,或者可能更好,什么是使用SecureRandom的合适替代方案? 最佳答案 David,据我了解,您指的是这份文件:http://csrc.nist.gov/p

java - SecureRandom 自播种

我找到了很多关于SecureRandom的例子看起来像这样的类:Randomrandom=newSecureRandom();intrandomInteger=random.nextInt();或者像这样:try{Randomrandom=SecureRandom.getInstance("SHA1PRNG");intrandomInteger=random.nextInt();}catch(NoSuchAlgorithmExceptionexception){//...}或类似的东西。然而,SecureRandom()和SecureRandom.getInstance(String)

java - 是否有与 OpenSSL 的 bn_rand_range 等效的 java?

具体来说,我只想生成一个介于0和某个数字x之间的加密安全随机数。在OpenSSL中,这是通过函数bn_range完成的。我可以使用Java的BigInteger(intbits,Randomr)构造函数(生成一个从0到2bits的数字)自己实现它。但如果可能的话,为了安全起见,我想使用经过更好测试的算法。在Java中是否有标准的方法来做到这一点?附言我实际上正在使用Android,但我不知道如何使用标准Java进行操作。编辑:x是一个存储为BigInteger的大整数。 最佳答案 Java提供了Random类的子类,SecureRa

android - Android N 弃用安全 "Crypto"提供程序

一位用户在AndroidN中运行我的应用程序,他遇到了崩溃。我知道谷歌在AndroidN中弃用了Cryptoprovider,但是迁移旧的加密数据的最佳方法是什么。 最佳答案 8.0以上可以引用here对于8.0以下的版本,您可以通过以下代码。您可以使用此提供程序替换SecureRandom的“Crypto”,它对我来说很好用:使用,SecureRandomsr=SecureRandom.getInstance("SHA1PRNG",newCryptoProvider());而不是,SecureRandomsr=SecureRand

java - 如何生成随机数并将其打印在 Android 的客户端?

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。我现在正在为Android开发一个与IMS相关的程序。我希望服务器将随机数作为字符串发送回客户端并在客户端打印。我的部分代码,来自GeneratingaSecureRandomNumber:publicstaticStringgenerateNonce(){try{//CreateasecurerandomnumbergeneratorSecureRand