面试题高频: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. 加解密基础——(对称加密、非对称加密和混合加密)

    本文对之前学习过的加解密相关知识做一简单总结,以备后用. 1. 基本概念 加密算法 通常是复杂的数学公式,这些公式确定如何将明文转化为密文的过程和规则. 密钥 是一串被加入到算法中的随机比特. 待续 ...

  2. 对称加密和非对称加密介绍和区别

    什么是对称加密技术? 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短, ...

  3. 【上】安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS

    此文章转载来源于http://blog.csdn.net/tenfyguo/article/details/40922813点击打开链接 一,对称加密 所谓对称加密,就是它们在编码时使用的密钥e和解码 ...

  4. 对称加密与非对称加密的区别_https原理及对称加密、非对称加密、数字证书、数字签名的含义...

    一.为什么要使用https 使用https的原因其实很简单,就是因为http的不安全. 当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用http进行通信.那么安全性将得不到保障 ...

  5. mysql对称连接什么意思_对称加密与非对称加密的区别是什么

    区别:1.对称加密中加密和解密使用的秘钥是同一个:非对称加密中采用两个密钥,一般使用公钥进行加密,私钥进行解密.2.对称加密解密的速度比较快,非对称加密和解密花费的时间长.速度相对较慢.3.对称加密的 ...

  6. 浅谈对称加密与非对称加密

    在数字加密算法中,通过可划分为对称加密和非对称加密. 一:什么是对称加密? 在对称加密算法中,加密和解密使用的是同一把钥匙,即:使用相同的密匙对同一密码进行加密和解密: 加密过程如下: 加密:原文 + ...

  7. 对称加密 与 非对称加密

    2019独角兽企业重金招聘Python工程师标准>>> 明文: 没有被加密过的内容 密文: 已经被加密的内容 算法: 通过算法对明文进行加密,如移位,置换 密钥: 加密时需要的密码, ...

  8. 对称加密、非对称加密深度解析

    密码学的发展 加密的发展史随着人类的进化逐步复杂.严谨也更安全,对于早期的移位和字母对应等加密方式我们不难理解. 移位 : 比如恺撒密码, 简单点说将 26个英文字母的顺序打乱,得到一个新的字母顺序, ...

  9. 网络协议从入门到底层原理(7)网络安全 - 常见攻击、单向散列函数、对称加密、非对称加密、混合密码系统、数字签名、证书

    网络安全 网络层 - ARP欺骗 DoS.DDoS 介绍与防御 传输层 - SYN洪水攻击(SYN flooding attack) 传输层 - LAND攻击 应用层 - DNS劫持.HTTP劫持 H ...

最新文章

  1. Android新权限机制 AppOps
  2. spring-文件上传
  3. GPU(CUDA)学习日记(十三)------ CUDA内存简介
  4. WordPress快速打造个人博客
  5. qt如何提前jpg文件里的缩略图_如何去捕获和编辑H5制作软件Hype中的海报图像
  6. 解决添加Com引用 生成的Interop.*.dll 版本号永远是1.0的问题
  7. leaflet-webpack 入门开发系列三地图分屏对比(附源码下载)
  8. 我看到东边的阳光就这样照进车窗
  9. Ext JS 4倒计时:图形和图表
  10. 数据库热备份 Xtrabackup安装及使用
  11. Android 循环缓冲区
  12. rpm 安装、卸载软件命令 ——以nginx为例
  13. php设计模式 -- 迭代器模式
  14. TCP为什么是3次握手而不是2次或者4次或者更多次?
  15. html实现“设为首页”加入收藏”代码
  16. 北航计算机录取最低分,2019年北京航空航天大学考研复试最低分数要求_北航各科目分数线-聚英北航考研网...
  17. 根据点、旋转轴、旋转角度,计算点旋转之后的位置
  18. HTML5游戏 看你有多“色” 开发
  19. 45 张令程序员泪流满面的趣图
  20. win10睡眠模式 屏幕熄灭主机仍然运行

热门文章

  1. 来瞧一瞧unshift和push的用法及“性能“对比
  2. 发明专利的权利要求书怎么写?
  3. 网上下载的PPT模板总是会自动切换、自动播放动画,怎么取消自动播放
  4. pandas 中.dropna()的用法
  5. 病毒分析师,你了解多少?
  6. Oracle——物化视图
  7. OpenGL ES总结(一)OpenGL 初识
  8. android连iphone热点超时,Android19连接iOS13个人热点失败
  9. 计算机图形学:向量运算(OpenGL)
  10. via浏览器云同步国内服务器网页,Via浏览器