面试题——对称加密和非对称加密
面试题高频:https和http的区别,对称加密和非对称加密的了解。
http
概念
- http协议是应用层的协议,又称:超文本传输协议(Hypertext transfer protocal),是浏览器和万维网(WWW)服务器之间通信的规则
- 默认端口:TCP 80
特点
- 无连接
虽然http协议是基于TCP传输的,TCP是面向连接的,但是http协议本身是无连接的。意思是,通信双方在交换http报文之前不需要先建立http连接。在完成TCP连接之后,客户端发送http请求报文,服务器处理完客户端请求,回送http响应报文,之后就断开连接,释放TCP连接。采用这种方式可以节省时间,尽快将资源释放以服务其他客户端,而数据的可靠传输交给TCP去完成。
问题:如果网页比较复杂,里面有很多图片、视频,每次点击这些图片或视频都需要建立一次TCP,然后再进行http请求,效率就比较低。
解决办法:后面提出了keep-alive,这个功能使客户端到服务器端的连接持续有效求,避免重新建立连接。
- 无状态
http协议对事务处理没有记忆能力。也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器响应时间与第一次被访问时一样,因为服务器不记得这个客户。这意味着每个请求都是独立的,无状态特性使得服务器更容易支持大量并发的http请求。
问题:如果一个客户端后续的访问需要用到之前的信息,则必须重传,导致每次请求会传输大量重复的内容。比如:购物网站。
解决办法:1、Cookie:保持登录信息到用户下次与服务器的对话。2、Session:当客户端访问服务器时,服务器根据需求设置session,将会话信息保留在服务器上,同时将sessionId传递给客户端浏览器,客户端将sessionId保留在内存中,以后浏览器每次请求都会带上这个sessionId,服务器根据这个sessionId,就能获取客户端的数据信息。
以下是WWW的工作过程:
客户端(浏览器) 服务器(WWW服务器)
---------------建立TCP连接---------------(三次握手)
-----1、请求文档(http请求报文)------>
<----2、响应文档(http响应报文)------
----------------释放TCP连接---------------(四次挥手)
https
概念
- https是http的扩展,这个s是security的意思,相比http,更安全,是因为它在传输层使用了安全协议:安全套接字层SSL(Secure Socket Layer).
- 默认端口:使用SSL的443端口
- 在发送方,SSL接收应用层的数据(如HTTP或IMAP报文),对数据进行加密,然后送往TCP套接字。在接收方,SSL从TCP套接字读取数据,解密之后把数据交给应用层。
应用层(http) |
应用层(http) |
SSL | |
TCP | TCP |
IP | IP |
HTTP HTTPS
安全协议
- 运输层的安全协议有SSL,TLS(Transport Layer Security),处在应用层和传输层之间。
SSL工作过程
当客户点击网站链接进行TCP连接后,先进行浏览器和服务器之间的握手协议,完成加密算法的协商和会话秘钥的传递,然后进行安全传输。大致过程如下:
(1)协商加密算法。浏览器向服务器发送自己的SSL版本号和一些可选的加密算法,B从中选定自己支持的算法,并告知A
(2)服务器鉴别。服务器向A发送一个包含其RSA公钥的的数字证书,A使用该证书的认证机构CA的公开发布的RSA公钥对其进行验证
(3)会话秘钥计算。A随机产生一个秘密数,用B的RSA公钥加密发送给B。双方根据协商的算法产生一个共享的对称会话秘钥。
(4)安全数据传输。双方用会话秘钥加密和解密之间传送的数据。
下图显示的是SSL建立会话的过程(非对称加密)。
对称加密和非对称加密
然后,就涉及到具体的加密算法了。
对称加密
- 加密方和解密方使用相同的秘钥
- 常用的算法:
- DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
- 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
- AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高
- 特点:速度快,适合大数量级的加解密,安全性中等
- 问题:秘钥管理比较难
非对称加密
- 加密方和解密方使用不同的秘钥(每一端都拥有一对秘钥:公钥和私钥)
- 常用的算法:
- RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的
- DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准)
- ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学
- 特点:秘钥容易管理
- 问题:速度慢,适合小数据量或数据签名
简单的加密设计: 用密钥对原文做 异或,置换,代换,移位
单向加密(散列)
- 使用信息摘要,加密性强的散列是不可逆的,无法通过散列结果推导出原始信息。一般用于验证信息的完整性,是否被篡改。
- MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。
- SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值
参考:
1、谢希仁的《计算机网络》
2、Https/SSL/对称加密/非对称加密
3、对称算法和非对称算法举例
面试题——对称加密和非对称加密相关推荐
- 加解密基础——(对称加密、非对称加密和混合加密)
本文对之前学习过的加解密相关知识做一简单总结,以备后用. 1. 基本概念 加密算法 通常是复杂的数学公式,这些公式确定如何将明文转化为密文的过程和规则. 密钥 是一串被加入到算法中的随机比特. 待续 ...
- 对称加密和非对称加密介绍和区别
什么是对称加密技术? 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短, ...
- 【上】安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS
此文章转载来源于http://blog.csdn.net/tenfyguo/article/details/40922813点击打开链接 一,对称加密 所谓对称加密,就是它们在编码时使用的密钥e和解码 ...
- 对称加密与非对称加密的区别_https原理及对称加密、非对称加密、数字证书、数字签名的含义...
一.为什么要使用https 使用https的原因其实很简单,就是因为http的不安全. 当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用http进行通信.那么安全性将得不到保障 ...
- mysql对称连接什么意思_对称加密与非对称加密的区别是什么
区别:1.对称加密中加密和解密使用的秘钥是同一个:非对称加密中采用两个密钥,一般使用公钥进行加密,私钥进行解密.2.对称加密解密的速度比较快,非对称加密和解密花费的时间长.速度相对较慢.3.对称加密的 ...
- 浅谈对称加密与非对称加密
在数字加密算法中,通过可划分为对称加密和非对称加密. 一:什么是对称加密? 在对称加密算法中,加密和解密使用的是同一把钥匙,即:使用相同的密匙对同一密码进行加密和解密: 加密过程如下: 加密:原文 + ...
- 对称加密 与 非对称加密
2019独角兽企业重金招聘Python工程师标准>>> 明文: 没有被加密过的内容 密文: 已经被加密的内容 算法: 通过算法对明文进行加密,如移位,置换 密钥: 加密时需要的密码, ...
- 对称加密、非对称加密深度解析
密码学的发展 加密的发展史随着人类的进化逐步复杂.严谨也更安全,对于早期的移位和字母对应等加密方式我们不难理解. 移位 : 比如恺撒密码, 简单点说将 26个英文字母的顺序打乱,得到一个新的字母顺序, ...
- 网络协议从入门到底层原理(7)网络安全 - 常见攻击、单向散列函数、对称加密、非对称加密、混合密码系统、数字签名、证书
网络安全 网络层 - ARP欺骗 DoS.DDoS 介绍与防御 传输层 - SYN洪水攻击(SYN flooding attack) 传输层 - LAND攻击 应用层 - DNS劫持.HTTP劫持 H ...
最新文章
- Android新权限机制 AppOps
- spring-文件上传
- GPU(CUDA)学习日记(十三)------ CUDA内存简介
- WordPress快速打造个人博客
- qt如何提前jpg文件里的缩略图_如何去捕获和编辑H5制作软件Hype中的海报图像
- 解决添加Com引用 生成的Interop.*.dll 版本号永远是1.0的问题
- leaflet-webpack 入门开发系列三地图分屏对比(附源码下载)
- 我看到东边的阳光就这样照进车窗
- Ext JS 4倒计时:图形和图表
- 数据库热备份 Xtrabackup安装及使用
- Android 循环缓冲区
- rpm 安装、卸载软件命令 ——以nginx为例
- php设计模式 -- 迭代器模式
- TCP为什么是3次握手而不是2次或者4次或者更多次?
- html实现“设为首页”加入收藏”代码
- 北航计算机录取最低分,2019年北京航空航天大学考研复试最低分数要求_北航各科目分数线-聚英北航考研网...
- 根据点、旋转轴、旋转角度,计算点旋转之后的位置
- HTML5游戏 看你有多“色” 开发
- 45 张令程序员泪流满面的趣图
- win10睡眠模式 屏幕熄灭主机仍然运行
热门文章
- 来瞧一瞧unshift和push的用法及“性能“对比
- 发明专利的权利要求书怎么写?
- 网上下载的PPT模板总是会自动切换、自动播放动画,怎么取消自动播放
- pandas 中.dropna()的用法
- 病毒分析师,你了解多少?
- Oracle——物化视图
- OpenGL ES总结(一)OpenGL 初识
- android连iphone热点超时,Android19连接iOS13个人热点失败
- 计算机图形学:向量运算(OpenGL)
- via浏览器云同步国内服务器网页,Via浏览器