Java Web学习(二)数据加密
一、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学习(二)数据加密相关推荐
- java web学习笔记(持续更新)
java web学习笔记 一.Java Web简介 二.认识Servlet 1.什么是Servlet? 2.请求路径 3.tomcat 4.Servlet的使用 三.Servlet简单应用 1.创建S ...
- java web学习项目20套源码完整版
java web学习项目20套源码完整版 自己收集的各行各业的都有,这一套源码吃遍所有作业项目! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动化 ...
- 2019年Java Web学习笔记目录
Java Web学习笔记目录 1.Java Web学习笔记01:动态网站初体验 2.Java Web学习笔记02:在Intellij里创建Web项目 3.Java Web学习笔记03:JSP元素 4. ...
- Java Web 学习路线
Java Web 学习路线 实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了. 大三的时候,我萌生了放弃本专业的念头,断断续续学 Java ...
- Java Web 学习路线(2018)
实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了. 大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总 ...
- [原创]java WEB学习笔记02:javaWeb开发的目录结构
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Java web学习文档
Java web 一,第一章 1,tomcat的下载及配置部署 学习本章内容需要具备以下知识点 java基础知识 面向对象oop思想 java进阶 数据库 前端网页技术(html/css/js/jqu ...
- java web学习笔记-jsp篇
转载自:http://www.cnblogs.com/happyfans/archive/2015/03/17/4343571.html 1.java web简介 1.1静态页面与动态页面 表现形 ...
- Java Web学习总结(10)——Session详解
摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术.本文将详细讨论session的工作机制并且对在Java ...
- Java Web学习总结(15)——JSP指令
2019独角兽企业重金招聘Python工程师标准>>> 一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处 ...
最新文章
- 摩托罗拉移动员裁员重点是研发
- Matlab神经网络十讲(7): Adaptive Filter and Adaptive Training
- 搭搭机器人科技活动中心怎么样_搭搭乐乐机器人怎么样?感受科技创收力量
- 20169210《Linux内核原理与分析》第十二周作业
- 提高程序员职场价值的10大技巧
- android收入管理系统,毕业设计(论文)-基于Android系统的家庭理财通软件的设计——收入管理模块.docx...
- 数据消费过程_特色鲜卤现捞加盟店经营要如何抓准消费群体定位
- 算法题1 大数字运算(输出时不显示前面多余的0)
- navicat连接PostgreSQL报:column “rolcatupdate” does not exist ...错误的解决办法
- 查询所有的oracle表、表空间、数据库连接等信息
- 当使用tensorflow时出现“the requested device apperas to be a GPU, but CUDA is not enabled”的解决办法
- android最贵的手机,2019翻盖手机排行榜_2019年最贵的手机有哪些?最贵手机排行榜...
- 收货地址列表html,收货地址.html
- 微信小程序实验一 ——— 简单计算器与秒表
- 批量给多个 Excel 工作簿文件添加文字水印或图片水印
- 【ValueError: data type <class ‘numpy.object_‘> not inexact】
- 显著性检验--学习笔记
- no moudle named dlib
- 学PHP时,端口被占用,怎么找端口的占用情况。
- EasyCode介绍及自定义模板
热门文章
- python的代码有哪些_Python有哪些有趣的代码呢,这些代码让
- 1载波把32个信道按_OFDM技术:相比FDM提高频带利用率,子载波间隔可以随意选取吗?...
- 缺失的第一个正数—leetcode41
- 将 app 打包成 deb 发布安装
- HDU-5249 KPI(STL or 权值线段树)
- CMake基础 第4节 动态库
- facenet + Mtcnn 实现人脸识别(实现步骤)
- Ubantu16.04安装显卡驱动遇到的坑
- ios::ate ios::app ios::out ios::in ios::trunc ios::binary(组合总结)
- OpenGL之gluPerspective浅析