一、Tomcat 体系

首先通过一幅图来了解下tomcat的运行体系:

Tomcat服务器的启动是基于一个server.xml文件的。

启动流程:

  • 首先启动一个Server,Server里面就会启动Service,Service里面就会启动多个"Connector(连接器)",每一个连接器都在等待客户机的连接。
  • 当有用户使用浏览器去访问服务器上面的web资源时,首先是连接到Connector(连接器),Connector(连接器)是不处理用户的请求的,而是将用户的请求交给一个Engine(引擎)去处理。
  • Engine(引擎)接收到请求后就会解析用户想要访问的Host,然后将请求交给相应的Host。
  • Host收到请求后就会解析出用户想要访问这个Host下面的哪一个Web应用,一个web应用对应一个Context。

二、互联网上的加密原理

对称加密

定义:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,也称为单密钥加密。

使用场景:由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。(如验证码,密码校验)

常用加密方式:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES算法等

非对称加密

定义:非对称加密算法需要一对密钥:公开密钥(publickey)和私有密钥(privatekey)。

实现过程:(PS:其实用只用一对公私钥也可以实现)

  • A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
  • A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
  • A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
  • A将这个消息发给B(已经用B的公钥加密消息)。
  • B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥

存在的问题:

  非对称性加密依然没有解决数据传输的安全性问题,比如A想向B发数据,B首先生成一对密钥(公钥和私钥),然后将公钥发给A,A拿到B发给他的公钥有就可以使用公钥加密数据后发给B,然而在B公钥发送给A的这个过程中,很有可能会被第三方C截获,C截获到B的公钥后,也使用B的公钥加密数据,然后发给B,B接收到数据后就晕了,因为搞不清楚接收到的数据到底是A发的还是C发的,这是其中一个问题,另一个问题就是,C截获到B发的公钥后,C可以自己生成一对密钥(公钥和私钥),然后发给A,A拿到公钥后就以为是B发给他的,然后就使用公钥加密数据发给B,发送给B的过程中被C截获下来,由于A是用C发给他的公钥加密数据的,而C有私钥,因此就可以解密A加密过后的内容了,而B接收到A发给他的数据后反而解不开了,因为数据是用C的公钥加密的,B没有C的私钥,所以就无法解密。

  1、被截获后发假消息给接收方,使得接收方无法识别消息的真假。

  2、被截获后发假消息给发送方,发送方用截获方密钥再加密发给接受方,此时接受方无法解密。

解决方案:

依靠第三方机构(CA机构,即证书授权中心),使用数字证书来担保。(数字证书的使用可以参考:https://www.cnblogs.com/xdp-gacl/p/3744053.html)

转载于:https://www.cnblogs.com/riches/p/11364438.html

Java Web学习(二)数据加密相关推荐

  1. java web学习笔记(持续更新)

    java web学习笔记 一.Java Web简介 二.认识Servlet 1.什么是Servlet? 2.请求路径 3.tomcat 4.Servlet的使用 三.Servlet简单应用 1.创建S ...

  2. java web学习项目20套源码完整版

    java web学习项目20套源码完整版 自己收集的各行各业的都有,这一套源码吃遍所有作业项目! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动化 ...

  3. 2019年Java Web学习笔记目录

    Java Web学习笔记目录 1.Java Web学习笔记01:动态网站初体验 2.Java Web学习笔记02:在Intellij里创建Web项目 3.Java Web学习笔记03:JSP元素 4. ...

  4. Java Web 学习路线

    Java Web 学习路线 实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了. 大三的时候,我萌生了放弃本专业的念头,断断续续学 Java ...

  5. Java Web 学习路线(2018)

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了. 大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总 ...

  6. [原创]java WEB学习笔记02:javaWeb开发的目录结构

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. Java web学习文档

    Java web 一,第一章 1,tomcat的下载及配置部署 学习本章内容需要具备以下知识点 java基础知识 面向对象oop思想 java进阶 数据库 前端网页技术(html/css/js/jqu ...

  8. java web学习笔记-jsp篇

    转载自:http://www.cnblogs.com/happyfans/archive/2015/03/17/4343571.html 1.java web简介 1.1静态页面与动态页面   表现形 ...

  9. Java Web学习总结(10)——Session详解

    摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术.本文将详细讨论session的工作机制并且对在Java ...

  10. Java Web学习总结(15)——JSP指令

    2019独角兽企业重金招聘Python工程师标准>>> 一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处 ...

最新文章

  1. 摩托罗拉移动员裁员重点是研发
  2. Matlab神经网络十讲(7): Adaptive Filter and Adaptive Training
  3. 搭搭机器人科技活动中心怎么样_搭搭乐乐机器人怎么样?感受科技创收力量
  4. 20169210《Linux内核原理与分析》第十二周作业
  5. 提高程序员职场价值的10大技巧
  6. android收入管理系统,毕业设计(论文)-基于Android系统的家庭理财通软件的设计——收入管理模块.docx...
  7. 数据消费过程_特色鲜卤现捞加盟店经营要如何抓准消费群体定位
  8. 算法题1 大数字运算(输出时不显示前面多余的0)
  9. navicat连接PostgreSQL报:column “rolcatupdate” does not exist ...错误的解决办法
  10. 查询所有的oracle表、表空间、数据库连接等信息
  11. 当使用tensorflow时出现“the requested device apperas to be a GPU, but CUDA is not enabled”的解决办法
  12. android最贵的手机,2019翻盖手机排行榜_2019年最贵的手机有哪些?最贵手机排行榜...
  13. 收货地址列表html,收货地址.html
  14. 微信小程序实验一 ——— 简单计算器与秒表
  15. 批量给多个 Excel 工作簿文件添加文字水印或图片水印
  16. 【ValueError: data type <class ‘numpy.object_‘> not inexact】
  17. 显著性检验--学习笔记
  18. no moudle named dlib
  19. 学PHP时,端口被占用,怎么找端口的占用情况。
  20. EasyCode介绍及自定义模板

热门文章

  1. python的代码有哪些_Python有哪些有趣的代码呢,这些代码让
  2. 1载波把32个信道按_OFDM技术:相比FDM提高频带利用率,子载波间隔可以随意选取吗?...
  3. 缺失的第一个正数—leetcode41
  4. 将 app 打包成 deb 发布安装
  5. HDU-5249 KPI(STL or 权值线段树)
  6. CMake基础 第4节 动态库
  7. facenet + Mtcnn 实现人脸识别(实现步骤)
  8. Ubantu16.04安装显卡驱动遇到的坑
  9. ios::ate ios::app ios::out ios::in ios::trunc ios::binary(组合总结)
  10. OpenGL之gluPerspective浅析