数字签名,就是用公钥加密明文的摘要生成的,验签,就是用公钥解密数字签名得到明文的摘要,再用拿到的明文计算摘要,两个摘要做对比;就是这么一个核心过程,主要是为了源认证,证明自己是自己,防止抵赖,签名的数据能在CA查。
签名验签流程
1.1 生成数字签名
1 利用RSA算法生成公钥、私钥。私钥由密钥持有者自主保存,公钥可对外发布。
2 准备好待签名的文档。
3 利用哈希算法(HASH),生成待签名文档的 摘要。(文档摘要)
4 利用签名者的私钥,加密文档摘要,得到 数字签名。
5 将签名者的公钥、数字签名、文档,传递给验签者。
1.2 验证数字签名
1 验签者获得签名者发过来的公钥、数字签名、文档。
2 验签者利用签名者的公钥解密数字签名,得到解密后的文档摘要。
3 验签者利用哈希算法生成文档的摘要。
4 比对 解密后的文档摘要 与 利用哈希算法生成的摘要。
5 若两个摘要完全一致,则验签成功;否者验签失败。
ukey签名验签流程
它就需要用证书去做签名,需要客户端给服务端发送数字签名、证书信息xml明文数据;数字签名是用xml明文做摘要,再用Ukey内的私钥加密获得的;
后台拿到后,首先验证证书信息是否存在数据库中,并获取相关的用户信息以及公钥信息,用公钥解密数字签名,再用xml明文计算哈希,两个值做对比,一致则验签通过,不一致,则失败
参考:https://blog.csdn.net/horacehe16/article/details/128557768