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

     

    ------------------------------------------------------------------------------------------------------------------------------------------ 需要荷兰版牛栏、荷兰美素、母婴用品的攻城师、设计师朋友,欢迎关顾【七彩母婴店】【http://qicaoyun.taobao.com】。凡是从博客园得知信息的,全店商品,均可优惠,请告知客服哦。你也可以通过淘代码【D5867219】,在淘宝搜索到我们。收藏有礼哦!
  • 相关阅读:
    AngularJS SQL
    CSS border-collapse 属性
    AngularJS 表格
    <option> 标签的 value 属性
    AngularJS Select(选择框)
    [Leetcode] N-Queens II
    [Leetcode] N-Queens
    [Leetcode] Climbing Stairs
    [Leetcode] Linked List Cycle II
    [Leetcode] Linked List Cycle
  • 原文地址:https://www.cnblogs.com/javawer/p/3227869.html
Copyright © 2011-2022 走看看