以下所有结果均为"java.security.NoSuchAlgorithmException: SHA not SecureRandom available"
(或类似)。
SecureRandom prng = SecureRandom.getInstance("SHA256");
SecureRandom prng = SecureRandom.getInstance("SHA-256");
SecureRandom prng = SecureRandom.getInstance("SHA1");
SecureRandom prng = SecureRandom.getInstance("SHA-1");
SecureRandom prng = SecureRandom.getInstance("SHA");
类似于以下内容("java.security.NoSuchAlgorithmException: SHA KeyGenerator not available"
):
KeyGenerator kgen = KeyGenerator.getInstance("SHA256");
KeyGenerator kgen = KeyGenerator.getInstance("SHA-256");
KeyGenerator kgen = KeyGenerator.getInstance("SHA1");
KeyGenerator kgen = KeyGenerator.getInstance("SHA-1");
KeyGenerator kgen = KeyGenerator.getInstance("SHA");
OpenJDK中有哪些生成器?根据{{3}},看起来SHA系列应该可用(至少对于SecureRandom而言)。
抱歉蹩脚的Java问题。我是一个Crypto ++和OpenSSL类型的人,谷歌正在回归很多噪音。如果重要的话,我在Eclipse工作。
杰夫
答案 0 :(得分:2)
答案 1 :(得分:1)
KeyGenerator有documentation。 SHA *是哈希,而不是加密算法。在KeyGenerator的上下文中使用SHA *几乎没有意义。
对于SecureRandom(顺便说一下,还有documentation)你最好不要指定算法,除非你有特定的要求而且你知道你在做什么(就像你知道你想要的提供者一样)使用)
我能想到的唯一连接是Sun JCE SecureRandom实际上使用了SHA1PRNG。