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"

       

      

  • 相关阅读:
    MapReduce测试进度
    MapReduce实验进度
    Hive安装心得及教程分享
    MapReduce实验进程
    个人课程总结
    最长单词链
    用户体验评价
    SSMS无法新建查询问题解决办法征集
    寻找“水王”
    算法和数据结构
  • 原文地址:https://www.cnblogs.com/wsss/p/11993763.html
Copyright © 2011-2022 走看看