• 对称性和非非对称性加密


    加密分为两种方式一种是对称加密,一种是非对称加密。

    在对称加密算法中,加密和解密使用的密钥是相同的。也就是说,加密和解密使用的是同一个密钥。因此,对称加密算法要保证安全性的话,密钥要做好保密。只能让使用的人知道,不能对外公开。

    在非对称加密算法中,加密使用的密钥和解密使用的密钥是不相同的。一把是作为公开的公钥,另一把是作为谁都不能给的私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。

    交互场景下多用对称性加密。

    数字证书

    如何将不对称加密的公钥给对方呢?一种是放在一个公网的地址上,让用户自己去下载,另一种是在建立链接的时候,发送给对方。

    如何鉴别这个公钥是正确的?而不是冒充的?这个时候需要权威部门介入,这个权威部门颁发的称为证书Certifcate,证书的内容包括:公钥,证书颁发机构,颁发给谁,签名算法以及使用期限。证书的生成需要发起一个请求(通过发送私钥,生成前面的红字内容),这个请求发到一个权威认证机构certifcate Authority, CA,权威机构卡一个章(一个签名算法,为一个hash算法),然后生成证书。 

    流程如下:从这个CA颁布的证书里拿到公钥,去解密某个网站的证书签名,如果解密成功,如果解密成功,hash也对的上,表示网站是正确的。

    如何确保是真正的权威机构而非伪造的?

    CA 的公钥也需要更牛的 CA 给它签名,然后形成 CA 的证书,依次追溯到rootCA。

    HTTPS 的工作模式

    非对称性加密在性能上不如对称性加密。实际中,公钥私钥主要用于传输对称性加密的密钥,而真正双方大数据量通信都是通过对称性加密进行的。

  • 相关阅读:
    ASP.NET中常用的26个优化性能方法(转)
    代码整洁
    【在开发中常用的UI控件】
    【加法计算器--结果label不显示加值】
    【点击textfield的时候不出现键盘】
    【XCODE上的项目运行到模拟器上是一片空白】
    【xcode commit失败 please tell me who you are】
    【storyboard 上没有箭头的解决办法】
    【ios模拟器上没 home键,怎么返回的?】
    【这是一个JAVA开发者的博客~】
  • 原文地址:https://www.cnblogs.com/wfq9330/p/9402764.html
Copyright © 2020-2023  润新知