iOS 和服务端交互 数据加密策略
2024-09-28 00:22:30
总体逻辑:
客户端:对称加密数据,上传。。。回执对称解密
同理服务端:获取上传数据 对称解密 。。。下发:对称加密
当且仅当登录接口和 拉新(更新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.
最新文章
- 仅此一文让你明白ASP.NET MVC 之Model的呈现(仅此一文系列三)
- 踩坑事件:不能对基于文本的临时表使用sql insert语句
- Android学习笔记——TableLayout
- servlet生命周期与工作原理
- JAVA - ATM机程序
- NDK开发之引用(局部引用,全局引用,虚全局引用)
- ACdream 1188 Read Phone Number (字符串大模拟)
- 工作流学习——Activiti流程变量五步曲 (zhuan)
- Integer类的装箱和拆箱到底是怎样实现的?
- sql2008“备份集中的数据库备份与现有数据库不同”解决方法
- (转载)log4net 组件详解
- 如何用Excel直接查询Oracle中的数据(转)
- ruby操作mongo DB
- Java IO、NIO、AIO知识总结
- 【Clojure 基本知识】小技巧s
- python 构造一个可以返回多个值的函数
- pycharm 倒入request包方法(新手)
- easyui dialog 表单提交,弹框初始化赋值,dialog实现
- 京东某商品页面的简单爬取 --Pyhon网络爬虫与信息获取
- C++复习:C++的类型转换
热门文章
- 【PM面试题】如果让你创业,你会选择什么?
- JAVA源文件中是否可以包括多个类,有什么限制
- 2018 ACM ICPC 南京赛区 酱油记
- 【BZOJ】3433: [Usaco2014 Jan]Recording the Moolympics (贪心)
- 【BZOJ】2100: [Usaco2010 Dec]Apple Delivery(spfa+优化)
- ROS导航之参数配置和自适应蒙特卡罗定位
- VC++ Debug产生异常时中断程序执行Break on Exception
- Python_selenium之窗口切换
- Django项目实战 - 搜索功能(转)
- 源码分析——Action代理类的工作