数字签名与签名验证过程

数字签名与签名验证过程

数字签名,就是用公钥加密明文的摘要生成的,验签,就是用公钥解密数字签名得到明文的摘要,再用拿到的明文计算摘要,两个摘要做对比;就是这么一个核心过程,主要是为了源认证,证明自己是自己,防止抵赖,签名的数据能在CA查。

签名验签流程

1.1 生成数字签名

1 利用RSA算法生成公钥、私钥。私钥由密钥持有者自主保存,公钥可对外发布。

2 准备好待签名的文档。

3 利用哈希算法(HASH),生成待签名文档的 摘要。(文档摘要)

4 利用签名者的私钥,加密文档摘要,得到 数字签名。

5 将签名者的公钥、数字签名、文档,传递给验签者。

1.2 验证数字签名

1 验签者获得签名者发过来的公钥、数字签名、文档。

2 验签者利用签名者的公钥解密数字签名,得到解密后的文档摘要。

3 验签者利用哈希算法生成文档的摘要。

4 比对 解密后的文档摘要 与 利用哈希算法生成的摘要。

5 若两个摘要完全一致,则验签成功;否者验签失败。

ukey签名验签流程

它就需要用证书去做签名,需要客户端给服务端发送数字签名、证书base64编码数据(公钥在证书信息中)、xml明文数据;数字签名是用xml明文做摘要,再用Ukey内的私钥加密获得的;

后台拿到后,解码证书base64数据获得公钥,用公钥解密数字签名,再用xml明文计算哈希,两个值做对比,一致则验签通过,不一致,则失败

参考:https://blog.csdn.net/horacehe16/article/details/128557768

相关推荐