• 你好!欢迎你的到来
  • 关于我们
  • 首页 博客 学习笔记 技术导航 工具
  • 博文分类
    • PHP(43)
    • MySQL(11)
    • Linux(28)
    • html(3)
    • JQuery(4)
    • JavaScript(9)
    • svn(2)
    • CSS(2)
    • seajs(1)
    • go(44)
    • redis(1)
    • nginx(8)
    • mongo(0)
    • java(0)
    • 算法(0)
    • 其他(26)
    • 生活(1)
    专栏
    • Jquery基础教程
      • 文章:(15)篇
      • 阅读:29563
    • shell命令
      • 文章:(42)篇
      • 阅读:97247
    • Git教程
      • 文章:(36)篇
      • 阅读:165686
    • leetCode刷题
      • 文章:(76)篇
      • 阅读:47995
    • 摘要视图
    • 目录视图
    公钥和私钥哪些事
    2019-02-26 21:35 阅读(2934) 评论(0)

    一、常见概念

    加密:是基于数据安全考虑,将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。

    认证:用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。

    对称秘钥:称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难,容易泄露。常用对称加密算法有:DES、 IDEA、 RC2、 RC4、 SKIPJACK、 RC5、 AES等。

    非对称秘钥:又称公钥密钥加密。它需要使用一对密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。RSA是一个非常经典的非对称加密算法。

    公钥加密体制

    比如,有两个用户A和用户B,他们是异地,用户A想给用户B发QQ消息,但是用户A和用户B担心,他们的QQ消息被其他人看到,怎么搞呢?

    首先,B用户就生成了自己的公钥和私钥。

    其次,B用户通过QQ消息,把公钥发给用户A,告诉用户A,发消息的时候,使用这个公钥加密哈。(当然,这个消息可能被其他用户看到,其他用户也就知道这个公钥了)

    然后,A用户把消息通过公钥加密后,发给了用户B。由于消息是加密的,即使其他用户看到用户A发给用户B的消息,也看不懂。

    最后,B用户通过自己的私钥解密消息,就能够知道用户A发给自己的是什么。

    签名体制

    假设还有一个用户C,他偷看到了B用户发给A用户的公钥,于是他就可以利用公钥,模拟A的身份,给用户B发消息。为了让B用户能够不被其他用户的消息迷惑,怎么搞呢?

    首先,A用户也生成了自己的公钥和私钥。

    其次,A用户通过QQ消息,把公钥发给用户B,告诉用户B,收到消息后,通过公钥解密一下消息里面的签名,就能判断这条消息,是否为自己发的。

    然后,A在给用户B发QQ消息的时候,都会利用自己的私钥,生成一个签名,放在消息后面。

    这样,如果C用户,模拟A的身份,给用户B发消息,由于不知道A用户的私钥,就不能生成对应的签名。


    二、加密和签名的区别

    加密,那肯定是不希望别人知道自己的消息,所以只有自己才能解密,可得出公钥负责加密,私钥负责解密;

    签名,那肯定是不希望有人冒充自己发消息,所以自己才能发布这个签名,可得出私钥负责签名,公钥负责验证。



    本文为原创文章,请尊重辛勤劳动,如需转载,请保留本文地址
    http://www.findme.wang/blog/detail/id/570.html

    若您感觉本站文章不错,读后有收获,不妨赞助一下?

    我要赞助

    您还可以分享给朋友哦

    更多
    顶
    1
    踩
    0
    • 上一篇: 使用BurntSushi/toml处理项目中toml格式的配置文件
    • 下一篇: go的方法集详解
    • 查看评论
    • 正在加载中...
    • 留言
    • 亲,您还没有登录,登录后留言不需要审核哦!
      可以使用如下方式登录哦!
  • CSDN | 新浪微博 | github | 关于我们 | 我要留言 | 友链申请
  • 豫ICP备18038193号    Copyright ©lidequan All Rights Reserved