列出JDK加密服务提供者、系统支持的消息摘要算法

一个简单的小程序可以列出JDK加密服务提供者、系统支持的消息摘要算法。

可以看到列出系统已经安装的所有的JCE提供者,并且著名的一些的消息摘要算法:MD5,生成公钥和私钥对的算法RSA等都在其中:

import java.security.Provider;
import java.security.Security;

public class Check {
	public static void main(String[] args) {  
        System.out.println("-------列出加密服务提供者-----");  
        Provider[] pro = Security.getProviders();  
        for (Provider p : pro) {  
            System.out.println("Provider:" + p.getName() + " - version:" + p.getVersion());  
            System.out.println(p.getInfo());  
        }  
        System.out.println("");  
        System.out.println("-------列出系统支持的消息摘要算法:");  
        for (String s : Security.getAlgorithms("MessageDigest")) {  
            System.out.println(s);  
        }  
        System.out.println("-------列出系统支持的生成公钥和私钥对的算法:");  
        for (String s : Security.getAlgorithms("KeyPairGenerator")) {  
            System.out.println(s);  
        }  
    }  
}

输出

-------列出加密服务提供者-----
Provider:SUN - version:1.8
SUN (DSA key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509 certificates; JKS & DKS keystores; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores, JavaPolicy Policy; JavaLoginConfig Configuration)
Provider:SunRsaSign - version:1.8
Sun RSA signature provider
Provider:SunEC - version:1.8
Sun Elliptic Curve provider (EC, ECDSA, ECDH)
Provider:SunJSSE - version:1.8
Sun JSSE provider(PKCS12, SunX509/PKIX key/trust factories, SSLv3/TLSv1/TLSv1.1/TLSv1.2)
Provider:SunJCE - version:1.8
SunJCE Provider (implements RSA, DES, Triple DES, AES, Blowfish, ARCFOUR, RC2, PBE, Diffie-Hellman, HMAC)
Provider:SunJGSS - version:1.8
Sun (Kerberos v5, SPNEGO)
Provider:SunSASL - version:1.8
Sun SASL provider(implements client mechanisms for: DIGEST-MD5, GSSAPI, EXTERNAL, PLAIN, CRAM-MD5, NTLM; server mechanisms for: DIGEST-MD5, GSSAPI, CRAM-MD5, NTLM)
Provider:XMLDSig - version:1.8
XMLDSig (DOM XMLSignatureFactory; DOM KeyInfoFactory; C14N 1.0, C14N 1.1, Exclusive C14N, Base64, Enveloped, XPath, XPath2, XSLT TransformServices)
Provider:SunPCSC - version:1.8
Sun PC/SC provider
Provider:SunMSCAPI - version:1.8
Sun's Microsoft Crypto API provider

-------列出系统支持的消息摘要算法:
SHA-384
SHA-224
SHA-256
MD2
SHA
SHA-512
MD5
-------列出系统支持的生成公钥和私钥对的算法:
RSA
DSA
DIFFIEHELLMAN
EC


JCE是什么?

Java Cryptography Extension(JCE)是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现。它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。它不对外出口,用它开发完成封装后将无法调用。

jar包下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

在早期JDK版本中,由于受美国的密码出口条例约束,Java中涉及加解密功能的API被限制出口,所以Java中安全组件被分成了两部分: 不含加密功能的JCA(Java Cryptography Architecture )和含加密功能的JCE(Java Cryptography Extension)。在JDK1.1-1.3版本期间,JCE属于扩展包,仅供美国和加拿大的用户下载,JDK1.4+版本后,随JDK核心包一起分发。JCA与JCE的API体系如下:

JCE的API都在javax.crypto包下,核心功能包括:加解密、密钥生成(对称)、MAC生成、密钥协商,



赞(52) 打赏
未经允许不得转载:优客志 » JAVA开发
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏