关于RSA加密和签名的区别与联系

Posted wsss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于RSA加密和签名的区别与联系相关的知识,希望对你有一定的参考价值。

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

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

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

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

 

  技术图片

 

 

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

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

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

   

  

以上是关于关于RSA加密和签名的区别与联系的主要内容,如果未能解决你的问题,请参考以下文章

RSA与AES的区别

关于getClass()和instanceof的区别与联系

javascript 关于生成器函数和异步/ AWAIT的区别与联系的DEMO

进程与线程的区别与联系

进程跟线程区别与联系

http和https的区别与联系