加密解密算法 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