一 概述
Java加密解密概述
Java安全领域分为四个部分:JCA-Java加密体系结构;JCE-Java加密扩展包;JSSE-Java安全套接字扩展包;JAAS-Java鉴别与安全服务。
JCA提供基本的加密框架,如证书、数字签名、消息摘要和密钥对产生器。
JCE提供各种加密算法、消息摘要算法和密钥管理等功能。
JSSE提供基于SSL的加密功能。
JAAS提供在Java平台上进行用户身份鉴别的功能。
JDK 1.7提供的安全提供者的配置信息
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=sun.security.ec.SunEC
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
security.provider.10=sun.security.mscapi.SunMSCAPI
安全提供者实现了两个概念的抽象:引擎和算法。
java.security包为安全框架提供类和接口。
Provider类实现了Java安全性的一部分或全部,称之为提供者。
自Java 5 开始Provider类中加入了内部类-Service类。Service类封装了服务的属性,并提供一个用于获得该服务的实现实例的工厂方法。
Security类的任务就是管理Java程序中所用到的提供者类。
MessageDigest类实现了消息摘要算法。
二 入门程序例子
启动Eclipse,出现一个错误;先记在这里。
以前Eclipse都是好的,今天启动出现:
A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse
查看一下环境变量,发现path环境变量里Java的内容没有了;新出现了 C:\Panda3D-1.7.0\bin;是装Panda3D时自动设置了Panda3D的目录到path变量,把Java的内容弄没了;重新在path环境变量加入Java的目录,总的内容如下;
C:\Panda3D-1.7.0\python;C:\Panda3D-1.7.0\bin;E:\Program Files\Java\jdk1.8.0_25\bin
好了,启动Eclipse。
新建一个Java项目,敲入如下代码:
package provider1;
import java.security.Provider;
import java.security.Security;
import java.util.Map;
public class testProvider {
public static void main(String args[]){
for(Provider p : Security.getProviders()) {
System.out.println(p);
for(Map.Entry<Object,Object> entry : p.entrySet()){
System.out.println("\t" + entry.getKey());
}
}
System.out.println("aa");
}
}
虽然Java不太熟悉,改改错误,程序还是正确运行,打印出了本机JDK所带的全部安全提供者;