默認情況下,java包裝有兩個安全的提供者,SUN version 1.2 and SunRsaSign version 1.0. 前一個包含了一組算法,主要是“安全哈希算法”(SHE) 數字簽名算法(DSA)和Java Key Store (JKS).
下面是一個簡單程序。
import java.security.PRovider;
import java.security.Security;
import java.util.Enumeration;
// List Security Providers and their Algorithms.
public class Providers {
static public void main(String[ ] args) {
Provider[ ] ps = Security.getProviders();
for(int i=0; i
System.out.println(""+ps[i]);
Enumeration enum = ps[i].keys( );
while(enum.hasMoreElements( )) {
System.out.println("
"+enum.nextElement( ));
}
)
)
)
輸出如下:
SUN version 1.2
Alg.Alias.KeyFactory.1.2.840.10040.4.1
Alg.Alias.Signature.1.2.840.10040.4.3
Alg.Alias.KeyPairGenerator.OID.1.2.840.10040.4.1
Signature.SHA1withDSA KeySize
Signature.SHA1withDSA ImplementedIn
........ more algortihms ....
SecureRandom.SHA1PRNG ImplementedIn
Alg.Alias.Signature.SHA-1/DSA
AlgorithmParameterGenerator.DSA KeySize
SunRsaSign version 1.0
KeyFactory.RSA
Signature.md5withRSA
Signature.SHA1withRSA
Signature.MD2withRSA
KeyPairGenerator.RSA
添加新的安全提供者是有可能的,但是依照加密技術規定的輸入、輸出原則,使用oBTaining算法必須小心。
Java CryptographyExtensions (JCE) 是一個擁有更多算法的供給包的例子。要安裝JCE,把JAR或者zip文件放到classpath里面。然后安裝JRE/JDK并修改一個叫做java.sercurity的文件,這個文件在'$JAVAHOME/lib/security'目錄下。這個文件包含一些不同的安全設置,譬如提供者列表。
下面就是jdk1.3的提供者列表
security.provider.1=sun.security.provider.Sun
security.provider.2=com.sun.rsajca.Provider
要把國際化的JCE加進去,只需要加上如下語句:
security.provider.3=au.net.aba.crypto.provider.ABAProvider
下次你運行Provider類時,一整個新的算法將會在ABA provider下得到。
新聞熱點
疑難解答