zoukankan      html  css  js  c++  java
  • 公钥、私钥和数字签名的理解

    总的来说:

    私钥来加密数据可以确定发送方的消息。

    用公钥加密数据,只有使用自己的私钥才能看到数据,这样就保护了数据。

    实例说明:

    1代表我的公钥,2代表我的私钥,公钥与私钥是成对的,它们互相解密。

    1.公钥加密

    PeopleA用我的公钥1来加密数据a,将加密后的数据b传递给我,只有我能够使用我的私钥2将b再恢复称a,而其他人不知道我的私钥,所以PeopleA与我之间就可以传输加密的数据,保护了数据。RSA算法是一种十分有效的公钥加密算法

    2.私钥签名

    我使用我的私钥2加密了数据a(只有我可以使用我的私钥),只有知道了我的公钥的人才能解密,能够确定这个数据是我发的

    使用私钥来加密数据,用途就是数字签名

    3.举栗

    比如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:

      • Bob将他的公开密钥传送给Alice。
      • Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
      • Bob用他的私人密钥解密Alice的消息。

    加深理解: 

    使用公钥与私钥的目的:

          1. 我发送给你的内容必须加密,在传输过程中不能被别人看到。

          2. 必须保证是我发送,不是别人冒充我的。

          公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。

          比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。

          首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。

          其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。

          A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。

     

  • 相关阅读:
    字符编码 乱码问题
    Django ORM那些相关操作
    pymysql模块使用---Python连接MySQL数据库
    数据库MySQL 之 索引原理与慢查询优化
    数据库MySQL之 视图、触发器、存储过程、函数、事务、数据库锁、数据库备份、事件
    数据库 MySQL 之 数据操作
    数据库 MySQL 之 表操作、存储引擎
    [BZOJ 4212]神牛的养成计划(Trie+可持久化Trie)
    [LuoguP4094] [HEOI2016] [TJOI2016]字符串(二分答案+后缀数组+ST表+主席树)
    [BZOJ 2865]字符串识别(后缀数组+线段树)
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/11781376.html
Copyright © 2011-2022 走看看