以下所有结果都是"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中有哪些可用的生成器?根据标准算法名称,看起来SHA系列应该是可用的(至少对于SecureRandom)。
很抱歉这个蹩脚的Java问题。我是一个Crypto++和OpenSSL类型的人,谷歌正在返回很多噪音。如果需要的话,我正在用Eclipse工作。
杰夫我想这会对你有帮助。
http://www.java2s.com/Code/Java/Security/ListAllProviderAndItsAlgorithms.htm检查它。祝你好运!
KeyGenerator有文档。SHA*是散列,而不是加密算法。在KeyGenerator上下文中使用SHA*几乎没有意义。
对于SecureRandom(顺便说一下,它也有文档),你最好不要指定算法,除非你有特定的需求,并且你知道你在做什么(就像你知道你正在尝试使用的提供商)
我能想到的唯一联系是Sun JCE secuerrandom实际上在底层使用SHA1PRNG。