KeyPair 生成公钥私钥
KeyStore 存储证书和密钥
MessageDigest 摘要算法
SecureRandom 随机数
Signature 签名
CodeSigner 签名者
CodeSource 让url与证书或签名者相关联
以上几个类是此包中最重要的,也是证书中必须的几项。其余的类都是辅助这几个类的。
先摘抄Jdk文档:
Java加密构为JCA 由几个密码算法提供商和一组api构成。提供商如sun太阳公司,先把一堆实现密码的程序供现出来,java再提供一组封装类去操作太阳公司这一堆密码源程序。我们的编程就是去操作这些封装类。
api类有:
java.security. javax.crypto. javax.crypto.spec. javax.crypto.interface
算法提供者有:
Sun. Sunrsasign. Sunjce. sunjsse也就是说这个密码算法实现是一个大工程,一个人完成不了,是几家人合伙搞的。我们编程时要用什么api, 要在程序中写明调用哪个作者。java.security.provider 就是供货商基础类
下表列出了一些与安全相关的文件和工具的位置。
表 1-2 Java 安全文件和工具
文件名或工具名 | 地点 | 描述 |
---|---|---|
|
| Java 安全的某些方面,例如配置提供程序,可以通过设置安全属性来定制。您可以在 |
|
| 这是默认的系统策略文件;请参阅安全策略。 |
密码策略目录 |
| 该目录包含多组管辖政策文件;请参阅加密强度配置。 |
|
| 该 |
仅限 Windows: |
| 有关安全相关工具的更多信息,请参阅Java 平台中的安全工具和命令,标准版工具参考。 |
对应我的deepin java系统路径为:
/usr/lib/jvm/java-11-openjdk-amd64/conf/security
这是本机java的密码算法提供商
管理提供商的类为:
java.security.security, 可以用里面的封装方法找出已预置的各个供货方和他们的各种加密算法服务。
这个文件 java.security 里面有很多例子,设置
注意这是java命令行的路径, ,eclipse的路径不同。
这些供货方的算法在使用前必须注册,这个Java.security就是上面12个提供商预置算法的注册表,Java也可以动态注册,就是利用那个基类完成的。这样方便调用第三方的算法。当然你也可以自已写个算法。
学这个加解密类,难点是不知道加解密的原理,只有跟据供货方提供的方法去套用。还有就是封装方法的各种参数输入形式怎样使用。现正写一个简单的1+1=2算法,理解加深这些参数。
公钥基础设施PKI类,这是jdk验证证书的类,相关类位于两个中:
java.security
java.security.cert
Jdk 主要由普通类和安全类组成,安全类由提供商类和java操作供货商源程序的类组成。这些操作类又分为几部分:
消息摘要算法
数字签名算法
对称批量和流加密
不对称加密
密钥生成器
安全随机数生成器
基于密码的加密
椭圆曲线密码学
关键协议算法
消息身份验证代码
每一部分都有相关协议,Java首先提供Spi抽象类,规定各种方法。各个提供商再编写自己的spi服务子类。我们调用的基本上是各个服务商的子类。
如果你能力编写算法,也是根据某服务类的spi编写相应的子类。