对称加密:加密和解密用的是同样的密钥。

非对称加密:使用一对密钥,公钥和私钥,私钥只由一方保管,不能外泄;公钥可以发给任何请求它的人

那么得到公钥的一方怎么确定这个公钥是服务器发过来的呢?

  这个就需要就公钥到第三方认证机构认证,生成数字证书,这个数字证书里面包含有公钥。

现在客户端要向服务器发送消息,服务器怎么知道这个消息是A发过来的而不是B或者C发过来的呢?

  这时客户端也生成一对公钥和私钥,私钥自己保管,公钥向外发布。客户端将数据和数据的数字签名(也叫消息摘要,数据经MD5算法生成的)一起用私钥加密,然后传送给服务器端。

服务器能用公钥打开,说明是A发过来的(不是B或C);再将数据用MD5算法生成消息摘要,与传送过来的消息摘要是一致的说明数据没有被篡改。

对称加密和非对称加密比较

(1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。

(2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。

(3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

在实际开发中我们一般将对称加密的密钥使用非对称加密算法来传送过去。

(1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。

(2) Alice的浏览器向银行的网站请求公钥。

(3) 银行将公钥发送给Alice。

(4) Alice的浏览器使用银行的公钥将自己的对称密钥加密。

(5) Alice的浏览器将加密后的对称密钥发送给银行。

(6) 银行使用私钥解密得到Alice浏览器的对称密钥。

(7) Alice与银行可以使用对称密钥来对沟通的内容进行加密与解密了。

tomcat配置加密的链接器

使用jdk自带的keytool工具生成密钥库输入:

1,keytool -genkey -alias tomcat -keyalg RSA,接着注意您的名字和姓氏填写网站名如localhost。生成keystore文件。

2,将.keystore文件放到tomcat的conf文件夹下面。

3,在conf文件夹下有一个server.xml文件,配置htttps连接器,加入参数keystoreFile和keystorePass。

如果想将所有请求都转化为https连接,可以将8443端口修改为443端口,同时修改conf文件夹下面的web.xml,在<welcom-list-file/>标签后面加入下面这一段话。

  1. <security-constraint>
  2. <!-- Authorization setting for SSL -->
  3. <web-resource-collection >
  4. <web-resource-name >SSL</web-resource-name>
  5. <url-pattern>/*</url-pattern>
  6. </web-resource-collection>
  7. <user-data-constraint>
  8. <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  9. </user-data-constraint>
  10. </security-constraint>

最新文章

  1. 【krpano】krpano xml资源解密(破解)软件说明与下载
  2. webshell下执行命令脚本汇集
  3. 【奇怪现象】用联通访问某些ASP.NET网站会产生__EVENTVALIDATION字段,用电信却只有:__VIEWSTATE。【正常】?原因?
  4. 顺序容器:vector,deque,list
  5. 从链接上获取参数值, location.href上获取参数
  6. Android 使用新浪微博SSO授权
  7. sonix uvc驱动的加入 RT5350支持H264
  8. 【原创】leetCodeOj ---Remove Duplicates from Sorted List II 解题报告
  9. 《JS权威指南学习总结--9.3 JS中JAVA式的类继承》
  10. 纯js实现html转pdf
  11. ORA-01031:insufficient privileges解决方法
  12. 关于NIM博弈结论的证明
  13. mac 下 通过 brew 安装 MariaDB
  14. Java错误:结束的字符文字
  15. 双向链表--首页大小不一卡片排序 --- react --- js
  16. html json 导出Excel
  17. sp_executesql 或者 EXECUTE 执行动态sql的权限问题
  18. 课后作业week 5 —— 两款修图软件优势及创新分析
  19. C++练习 | 递归判断二叉树是否同构
  20. Python之路(四)---&gt;list、元组、字典

热门文章

  1. 题解 P2879 【[USACO07JAN]区间统计Tallest Cow】
  2. Pytorch中randn和rand函数的用法
  3. springMVC基础框架搭建
  4. Java数据结构浅析
  5. Linux服务器开发:工具
  6. centos7中的网卡名称相关知识
  7. Python map学习笔记
  8. 日常系统维护之修复linux的grub引导
  9. lodash 中 remove
  10. vs调试时,不显示局部变量