App实现可靠性数据传输

App和server需要大量的数据交互,为了防止竞争对手通过抓包方式获得自己的数据,可以采用对称加密技术和非对称加密技术结合的方式对自己的数据进行可靠性传输。本文采用 AES ECB 128位方式举例,具体的大家可以自行选择。 一、上行(App发送数据给Server)假如我们需要将用户的手机号,密码发给Server端。数据telephone=185000000000,pwd=1234561.先将数据序列化(json化){"telephone" : "185000000000","pwd" : "123456","deviceid" : "238479384723498","time" : "1446517059"}注:时间戳和设备id(每个设备唯一)都是为了防止请求重现加入的,可以在请求的基类里加入2.数据加密及签名生成将第一步的json进行AES加密并进行base64,本文在 海姹网在线AES得到密钥为12345678,删掉所有换行和非数据的空格如({"telephone":"185000000000","pwd":"123456","deviceid":"238479384723498","time":"1446517059"})Y7bSUw3mjUxaOU126RaQJqNv1UPKeLf0l1lMVQJ359IgbQuHTqTUAUrhtqApiH7zZu3KJahbTcyYDLFyzGsFSC6XC7CqeuZNKIi0T+U7tR3Mqw5ndJHT/X9O+aBT7sAoqgEbt9+kC2EN9dhceYXgXM6H+brLYZwbBqw/NrEQjfLTzOc1GX9kOUCXbaupWSz1JDdRTQ272i2X7GqC0jJWLD/xRUveqfOdD1sMmdhgsJc=对json数据做md5得到6c220955e6a567a0b944cac843ca8e8e3.组合传输数据将加密的数据和签名json化
{"sign" : "6c220955e6a567a0b944cac843ca8e8e","data":"Y7bSUw3mjUxaOU126RaQJqNv1UPKeLf0l1lMVQJ359IgbQuHTqTUAUrhtqApiH7zZu3KJahbTcyYDLFyzGsFSC6XC7CqeuZNKIi0T+U7tR3Mqw5ndJHT/X9O+aBT7sAoqgEbt9+kC2EN9dhceYXgXM6H+brLYZwbBqw/NrEQjfLTzOc1GX9kOUCXbaupWSz1JDdRTQ272i2X7GqC0jJWLD/xRUveqfOdD1sMmdhgsJc="
}
4.Server端处理
收到App的请求数据后,Server先将data字段AES解密,得到有效数据的JSON,再进行相同规则的签名计算,需要主要json数据的顺序,必须保持一致,再和App发过来的sign进行比对,如果一致则判读为有效请求,将当前的sign存到redis里,设置一个月内不得再出现,防止请求重现。
二、下行(Server发送数据给App)
可以仿造上行的2,3两步,但是不需要deviceid.

更多内容请关注 我的博客
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值