zoukankan      html  css  js  c++  java
  • HTTPS理解

    作用:

      1. 证书:证明要访问的域名是真实的域名,不是被黑客冒充的假网站。

          2. 加密:避免中间人攻击,避免内容被中间人获取。

    证书中包含的信息:

          1. RSA公钥

          2. 证书签发机构,对证书的签名(指纹)

          3. 签名算法,带RSA加密的SHA256

    使用过程:

        1.  密钥协商:客户端(浏览器)随机生成AES密钥,使用RSA公钥加密,发送给服务端,服务端使用私钥解密。得到AES密钥。

        2.  数据加密:使用AES对数据加密。

        3.  生成摘要:对数据进行SHA256算法,生成数据的摘要。并使用RSA私钥对摘要进行签名。

    Q:为什么不直接是用RSA进行非对称加密?

    A:为了性能,RSA跟AES相比运行效率存在十几倍的差距。

      

    Q:为什么要对摘要进行SHA256生成摘要,直接对内容进行签名不行吗?

    A:也是为了性能,RSA非对称加密算法性能跟SHA相比差存在十倍的差距。先生成摘要,可以让RSA签名的数据变小。

    Q:为什么要生成摘要和签名?数据不是已经加密了吗?

    A:防止中间人攻击,中间人可以获得AES密钥,篡改数据。但中间人密钥RSA私钥,无法对摘要进行签名。

        

  • 相关阅读:
    LeetCode: LRU Cache
    LeetCode: Reorder List
    LeetCode: Linked List Cycle I && II
    LeetCode: Word Break I && II
    LeetCode: Single Number I && II
    太坑了,mybatis注解一对多,id没了
    ajax请求参数的格式
    查询结果拼接
    id拼接保存到单个字段后作为表连接的查询条件
    seam的定时轮巡
  • 原文地址:https://www.cnblogs.com/lhp2012/p/14245098.html
Copyright © 2011-2022 走看看