iOS 和服务端交互 数据加密策略
总体逻辑:
客户端:对称加密数据,上传。。。回执对称解密
同理服务端:获取上传数据 对称解密 。。。下发:对称加密
当且仅当登录接口和 拉新(更新nonce 和 key的接口)是对称加密上传 非对称解密
1.加密库选择 : Libsodium
2.加密对象:
(1)整体:这个我们最后放弃了,因为如果整体加密,服务端大多数情况会回执本地无法解开的数据,客户端不能按需处理逻辑了,僵死的逻辑处境
(2)局部:只加密data部分,这样随时根据回执信息按需处理
{code:0
data: {XXX}
message:success
}
3.加密方式:
重中之重,先 生成密钥对:
执行方法crypto_box_keypair,生成密钥对(pk,sk)
3.1 未登录前http请求需要:(eg 发送验证码、请求国际码集合等)
对称加密:
客户端参数:
(1)前提:请求头必有参数
VERSION:客户端版本号 md5处理
(2)密码学必要参数 nonce: (1) 中截取md5[0,24)
key: (1)中截取[0,32)
(3) 加密对象:最终转为data形式
(4)执行加密传输:
方法:crypto_secretbox_easy
同理:服务端解密需要用 成对方法解密:crypto_secretbox_open_easy
(5)服务端回执:客户端对称解密(服务端发送是对称加密)
3.2 登录操作:
(1) “3.1” 对称加密形式发起登录请求
(2) 上传加密的内容包括 本地生成的pk.
iOS 和服务端交互 数据加密策略的更多相关文章
- IOS开发系列之阿堂教程:玩转IPhone客户端和Web服务端交互(客户端)实践
说到ios的应用开发,我们不能不提到web server服务端,如果没有服务端的支持,ios应用开发就没有多大意义了,因为从事过手机开发的朋友都知道(Android也一样),大量复杂业务的处理和数据库 ...
- java客户端与服务端交互通用处理 框架解析
一.综述 java 客户端与服务端交互过程中,采用NIO通讯是异步的,客户端基本采用同一处理范式,来进行同异步的调用处理. 处理模型有以下几个要素: 1. NIO发送消息后返回的Future 2. 每 ...
- Android客户端与服务端交互之登陆示例
Android客户端与服务端交互之登陆示例 今天了解了一下android客户端与服务端是怎样交互的,发现其实跟web有点类似吧,然后网上找了大神的登陆示例,是基于IntentService的 1.后台 ...
- c++ 网络编程(一)TCP/UDP windows/linux 下入门级socket通信 客户端与服务端交互代码
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9601511.html c++ 网络编程(一)TCP/UDP 入门级客户端与服务端交互代码 网 ...
- Fresco 源码分析(二) Fresco客户端与服务端交互(1) 解决遗留的Q1问题
4.2 Fresco客户端与服务端的交互(一) 解决Q1问题 从这篇博客开始,我们开始讨论客户端与服务端是如何交互的,这个交互的入口,我们从Q1问题入手(博客按照这样的问题入手,是因为当时我也是从这里 ...
- Android客户端与PHP服务端交互(一)---框架概述
背景 作为一个普通上班族,总是想做一些自认为有意义的事情,于是乎准备成立一个工作室,尽管目前正在筹备阶段,但是之前有些朋友提出一些需求的时候,我发现自己的能力还是有限,直到最近和一些技术牛朋友聊起这事 ...
- Fresco 源码分析(二) Fresco客户端与服务端交互(3) 前后台打通
4.2.1.2.4 PipelineDraweeControllerBuilder.obtainController()源码分析 续 上节中我们提到两个核心的步骤 obtainDataSourceSu ...
- cas sso单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析
转:http://blog.csdn.net/ae6623/article/details/8848107 1)PPT流程图:ppt下载:http://pan.baidu.com/s/1o7KIlom ...
- KnockoutJS-与服务端交互
几乎所有Web应用程序都要和服务器端交换数据,交换数据时最方便的就是使用JSON格式.Knockout可以实现很复杂的客户端交互,对于前后端交互使用的技术最为基本且常用的是Ajax,本次利用Ajax和 ...
随机推荐
- C#连接各种数据库的方法(文档)
1.C#连接连接Access程序代码: ------------------------------------------------------------------------------- ...
- (转载)【C#4.0】dynamic和var及object
dynamic a = 10;a = a + 10;Console.WriteLine(a.GetType()); 此段代码会输出 System.Int32,第二行不需要类型转换,因为在运行时识别类型 ...
- sublime 空格 tab
sublime强大的编辑能力非常值得推荐.在编辑python语言时,因为python用段落格式取代了常见语言中的括号,所以在写python时.会将空格和tab混淆,如此产生的错误非常是恼人. 如17, ...
- 【Raspberry Pi】GPIO-发光二极管控制
注意事项: 注意IO脚电流不能大于16mA,3V脚总电流不能大于50mA,所以两个二极管各上拉了400欧左右的电阻 采用物理针脚7和9做控制 其中output参数LOW为接通,HIGH为屏蔽 impo ...
- 【PyQt】算法-插入、递归、冒泡
# coding=utf-8 import sys from PyQt4.QtGui import * from PyQt4.QtCore import * class MainWindow(QMai ...
- Hadoop格式化HDFS报错java.net.UnknownHostException: centos64
异常描述 在对HDFS格式化,执行hadoop namenode -format命令时,出现未知的主机名的问题,异常信息如下所示: [shirdrn@localhost bin]$ hadoop na ...
- bzoj 1415(概率dp和bfs预处理)
感觉挺经典的一道题目. 先用 bfs 预处理下一步走到的位置.因为每一步走法都是固定的,所以可以用dp的方法来做. 1415: [Noi2005]聪聪和可可 Time Limit: 10 Sec M ...
- NEU710(wanghang走迷宫)
题目链接:传送门 题目大意:给你一个图,要从起点走到终点并且要吃够足够的金币才能出去,图上有金币(只能吃一次), 有传送门(用一次消耗1金币,必须有金币才能使用),问最少需要多少步才能出去.不能出去输 ...
- [PowerShell]–Checking the version of Office installed
– Create and initialize the object $objExcel = New-Object -ComObject Excel.Application – Query the v ...
- Create a Group Policy Central Store
一.How to create a Group Policy Central Store You have downloaded or created your own Group Policy Ad ...