默认情况下,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下得到。
闽公网安备 35060202000074号