首页 > 代码库 > 数字证书和数字签名

数字证书和数字签名

 

数字签名

服务器首先使用RSA算法生成私钥-公钥对,并只公开公钥。

客户端拿到公钥就可以安全地与服务器通信了。

举个例子,服务器发送的内容是abc,则有:

content=abc

hash值=hash(content)

数字签名=私钥加密hash值

 

客户端验证签名过程:

1. 公钥解密数字签名得到hash值
2. 实际hash值=hash(content)

 

结果:

公钥解密出错,有两种情况:一是解密用的公钥是错的;二是数字签名是错的;

比较签名中的hash值与实际hash值,如果相等说明内容没有被修改过,验签成功;如果不相等说明内容被修改过。

 

数字证书和数字签名