java加解密-数字证书

一、概述

  1、我们了解了对称加密算法、非对称加密算法、数字签名算法应用,他们组合起来使用就是数字证书

  2、对称加密算法用来加解密数据,非对称加密算法常用来做密钥交换、数字签名算法主要用来验证数据的不可否认性

  3、数字证书:对于我们来说最常见的就是银行给我们提供的数字证书,以文件下载的方式保存,或者以u盾的方式保存

  4、数字证书其实就是我们非对称加密算法中存放了相关算法的公钥信息

二、模型分析

    我们要制造数字证书。可以用openssl和java的keytools来获得,openssl开源软件这个比keytools功能强大。

  1、keytools生成数字证书,并创建本地密钥库。

  2、数字证书(客户端)给客户,本地密钥库配合tomcat这些应用服务器使用。开放服务器的安全端口,用https访问服务器的时候,就是进行加密数据交互了。那些对称加密、非对称加密算法 都被隐藏在交互细节中了,对我们使用者来说是透明的

  3、客户将数字证书导入自己的浏览器,和tomcat进行数据传送。通过他们内部实现的协议进行数据加密传输,同时通过签名验证数据的真实性

 

三、实现方式

  1、证书的产生必须用openssl或者keytools来完成

  2、放到外部使用需要用tomcat的ssl/tls配置作为支持

  3、如果需要第三方发放签名证书,可以将证书的csr文件给第三方公正,常见的国际公正三巨头可以帮我们做这些。免费的第三方只有cacert了。电子商务常用的就是verisign这个付费的第三方证书发放机构。如果不用第三方,就是自签名的了。没啥法律效力

 

四、总结

 1、上述模型只是说了单向加密、如果需要双向加密实现方式相同。只不过需要创建客户端证书、服务器端证书等等...

 2、安全的终极装备就是安全协议。这个tomcat的ssl/tls配置是最好的体现

 3、常规的加解密或者数字证书,核心还是用rsa之类的非对称加密算法传递密钥,然后通过对称加密算法进行加密数据传输。用签名算法进行数据校验

 

你可能感兴趣的:(java,tomcat,算法,加密,服务器,解密)