首页 > 其他 > 详细

数据传输

时间:2019-07-29 16:30:17      阅读:67      评论:0      收藏:0      [点我收藏+]
1,Client请求数据格式(加密)

请求设计到加密,防篡改,防重,请求失效时间

{
   "data": //aes加密:加密对象是原始数据
"S2VDW01SOhIYVLaPAHEbY1aG9el3RFes9ITCVi6WR8FU6GPPs1QXJZ0svTs8HZGaNMef/sdONi/oNbG",
    "encryptedStatus" : 0, //是否加密 0 未加密 1加密 
    "timestamp" :"1559025730536",//时间戳毫秒,请求失效有效
    "sign" : "ea08a9329549b4bec7156bf29a2a3407"//签名,防篡改
    "requestId" : "15590212056037064",//防重,生成原则:随机唯一不重复字符串,熬鹰使用:毫秒时间戳 与 随机数(0到10000) 字符串拼接
}

密钥生成规则:
MD5(时间戳+N==KNT|QJZN2019)

签名规则
 sign : md5 [ 请求参数+盐 排序之后的字符串];排序规则:按照key升序,key对应的value按照=,&符号拼接,

2,Sever响应数据格式(加密)

服务器返回数据,没有签名和防重

{
    "code": "200", //状态码
    "msg": "查询成功", 
    "data": //aes加密:加密对象是原始数据
"S2VDW01SOhIYVLaPAHEbY1aG9el3RFes9ITCVi6WR8FU6GPPs1QXJZ0svTs8HZGaNMef/sdONi/oNbG",//未加密状态 返回json对象
    "encryptedStatus" : 0, //是否加密 0 未加密 1加密 
}

3,举例:Sever解密Client的data字段

加载列表数据

{
  "token" : "9e100efe04b74261a68beed129336af1",
  "version" : "1.10.0",
  "pageIndex":"5",
  "pageNumber":"20",
  "messageId":"5"
}
4,举例:Client解密Server的data字段

加载个人信息数据

{
    "data": {
        "avatarUrl": "http://116.66.49.218:8017/allin/image/2019041617/201904161713356954.jpg", 
        "birthday": "2017-11-30", 
        "name": "高山流水", 
        "phoneNum": "18568537272", 
        "sex": "男", 
        "userId": 140, 
       }
}
5,文件传输,

熬鹰文件名hash规则

  • a = hash256(文件内容)
  • fileName = hash512 [ a + 盐(密钥) ]

    6,加解密流程

    技术分享图片

  • sever端生成rsa密钥对,rsa公钥写死在(或通过网络传给)client端
  • client端生成aes密钥,用aes密钥加密数据,同时使用server端获得的rsa公钥加密aes密钥,
  • server端使用rsa私钥解密client端得到aes密钥,使用aes密钥获得client原文
  • server端生成aes密钥加密数据,用rsa私钥加密aes密钥,传递给client端
  • client端使用rsa公钥解密,获得aes密钥,然后使用aes密钥解密,获得sever原文

7,那些接口需要加密
  • 涉及4要素的接口
  • 登录密码的接口
  • 涉及金额的接口

    8,补充说明
  • 加密无法做到绝对的安全,反编译无解
  • 如果修改手机时间,或者修改服务器时间,会导致时间戳失效问题

数据传输

原文:https://www.cnblogs.com/guligei/p/11264429.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!