openssl中RSA数字签名的使用

参考: 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. 对比计算出来的数据摘要和客户端传送过来的数据摘要,一致,则说明客户端是合法,可以进行下一步数据传输;否则认为不合法,中断连接。

 

 

 

posted @ 2013-07-31 15:20  Javawer  阅读(1315)  评论(0编辑  收藏  举报
作者:Roger Wei
出处:http://www.cnblogs.com/javawer/
转载须保留此声明,并注明在文章起始位置给出原文链接。