本文介绍了什么是"SecretKeyFactory不可用"?是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是怎么了?

for (Object obj : java.security.Security.getAlgorithms("Cipher")) {
  System.out.println(obj);
}
javax.crypto.SecretKeyFactory.getInstance("AES");

这是输出(在Mac OS 10.6上为JDK 1.6):

This is the output (JDK 1.6 on Mac OS 10.6):

BLOWFISH
ARCFOUR
PBEWITHMD5ANDDES
RC2
RSA
PBEWITHMD5ANDTRIPLEDES
PBEWITHSHA1ANDDESEDE
DESEDE
AESWRAP
AES
DES
DESEDEWRAP
PBEWITHSHA1ANDRC2_40

java.security.NoSuchAlgorithmException: AES SecretKeyFactory not available
 at javax.crypto.SecretKeyFactory.<init>(DashoA13*..)
 at javax.crypto.SecretKeyFactory.getInstance(DashoA13*..)
 ...

推荐答案

这是一个已验证的Java错误.请参见 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7022467

This is a verified java bug. See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7022467

不同的Java版本支持不同的算法,您也可以使用自定义提供程序等对其进行扩展.Oracle在此处提供了Java 6的列表 http://docs.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html .对于KeyFactory,这是DSA.

Different java versions support different algorithms, you can also extend it with custom providers and so on. Oracle has a list for java 6 here http://docs.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html . For KeyFactory this is DSA.

这篇关于什么是"SecretKeyFactory不可用"?是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-01 21:15