加密解密,签名验签

加密解密算法 RSA非对称加密算法,有一个私钥,一个公钥;

顾名思意 私钥只有自己知道,公钥所有人都可以知道;

公钥加密,私钥解密 可以实现消息加密; 这样只有对应的人才能将消息明文拿到;

私钥加密,公钥解密 可以实现数字签名; 这样可以确实是谁发来的消息。因为服务端的公钥只能解对应方的私钥;

一个具体的签名过程如下:

       1. 小明对外发布公钥,并声明对应的私钥在自己手上
       2.小明对消息M计算摘要,得到摘要D
       3. 小明使用私钥对D进行签名,得到签名S
       4. 将M和S一起发送出去

验证过程如下:

        1.接收者首先对M计算摘要,得到D’
        2.使用小明公钥对S进行解签,得到D
        3.如果D和D’相同,那么证明M确实是小明发出的,并且没有被篡改过


数字签名可以用来干什么呢?
网站认证

首先最常见的用处就是用来认证一个网站的身份。
比如我打开百度,百度是怎么保证显示在我眼前的网页就一定是百度生成的,不是其他人修改的呢?就是借助数字签名来实现的。


用IE浏览器打开百度,点击地址栏旁边的小锁,再点击查看证书,就可以看到百度主页的数字签名证书了。所谓证书,其实是对公钥的封装,在公钥的基础上添加颁发者、有效期等信息。
网站认证

“签名算法”一栏可以看到,它使用的是sha256RSA,也就是使用SHA-256计算摘要,然后使用RSA对摘要进行签名。而在“公钥”一栏则保存着该证书的“本体”,用于验证签名的RSA公钥。


原博客地址:https://blog.csdn.net/qmickecs/article/details/73696954

猜你喜欢

转载自www.cnblogs.com/wjt-jun/p/10313404.html