openssl中RSA数字签名的使用

时间:2022-06-18 23:39:27

参考: OpenSSL命令行工具验证数字签名

  客户端需要生成一对密钥,服务器需要生成一对密钥,分别记为client_private.pem/client_public.pem和server_private.pem和server_public.pem.

步骤

1. 客户端下载服务器的公钥,server_public.pem;

2. 客户端使用服务器的公钥对数据(data)进行加密;

3. 客户端对数据(data)进行签名计算,再将结果用私有密钥进行加密,得到加密后的摘要签名;

4. 客户端使用加密后的数据和签名结果组合成最终需要传送的数据,传送到服务器。

5. 服务器收到加密数据、数字签名、客户端公钥;

6. 服务器通过自有私钥解密数据,得到明文数据;

7. 服务器通过明文数据计算出数据摘要;

8. 服务器根据客户端的公钥解密客户端的加密数字摘要;

9. 对比计算出来的数据摘要和客户端传送过来的数据摘要,一致,则说明客户端是合法,可以进行下一步数据传输;否则认为不合法,中断连接。

相关文章