zoukankan      html  css  js  c++  java
  • 关于RSA加密和签名的区别与联系

      发现网上对于RSA加密和签名的介绍普遍偏向于使用和概念的说明,今天想说一点不一样的。对于加解密和签名的使用及概念就不再说了,不知道的请自行百度。

      签名的本质其实就是加密,但是由于签名无需还原成明文,因此可以在加密前进行哈希处理。所以签名其实就是哈希+加密,而验签就是哈希+解密+比较。

      签名过程:对明文做哈希,拼接头信息,用私钥进行加密,得到签名。

      验签过程:用公钥解密签名,然后去除头信息,对明文做哈希,比较2段哈希值是否相同,相同则验签成功。

      

       附上一段java代码,可见使用解密方法可以从签名中得到原文的哈希值。

      最后附上一些哈希的头信息(16进制)

        md2: "3020300c06082a864886f70d020205000410"
        md5: "3020300c06082a864886f70d020505000410"
        sha1: "3021300906052b0e03021a05000414"
        sha224: "302d300d06096086480165030402040500041c"
        sha256: "3031300d060960864801650304020105000420"
        sha384: "3041300d060960864801650304020205000430"
        sha512: "3051300d060960864801650304020305000440"
        ripemd160: "3021300906052b2403020105000414"

       

      

  • 相关阅读:
    12.python中的列表
    11.python中的元组
    10.python中的序列
    9.python的布尔类型与流程控制
    8.python中的数字
    7.python字符串-内置方法分析
    Boost--lexical_cast 一个方便安全高效的string转换库
    STL进阶--vector vs deque
    STL进阶--删除元素
    STL进阶--相等 vs 等价 (Equality vs Equivalence)
  • 原文地址:https://www.cnblogs.com/wsss/p/11993763.html
Copyright © 2011-2022 走看看