iOS网络编程开发-数据加密
iOS网络编程开发-数据加密
一、简单说明
1.说明
在开发应用的时候,数据的安全性至关重要,而仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题。
如:可以利用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据
“青花瓷”软件
因此:提交用户的隐私数据时,一定不要明文提交,要加密处理后再提交
2.常见的加密算法
MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \ RSA \ IDEA \ DSA \ AES
3.加密算法的选择
一般公司都会有一套自己的加密方案,按照公司接口文档的规定去加密
二、MD5
1.简单说明
MD5:全称是Message Digest Algorithm 5,译为“消息摘要算法第5版”
效果:对输入信息生成唯一的128位散列值(32个字符)
2.MD5的特点
(1)输入两个不同的明文不会得到相同的输出值
(2)根据输出值,不能得到原始的明文,即其过程不可逆
3.MD5的应用
由于MD5加密算法具有较好的安全性,而且免费,因此该加密算法被广泛使用
主要运用在数字签名、文件完整性验证以及口令加密等方面
4.MD5破解
MD5解密网站:http://www.cmd5.com
5.MD5改进
现在的MD5已不再是绝对安全,对此,可以对MD5稍作改进,以增加解密的难度
加盐(Salt):在明文的固定位置插入随机串,然后再进行MD5
先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序
总之宗旨就是:黑客就算攻破了数据库,也无法解密出正确的明文
代码示例:
1 #import "HMViewController.h" 2 #import "NSString+Hash.h" 3 4 #define Salt @"fsdhjkfhjksdhjkfjhkd546783765" 5 6 @interface HMViewController () 7 8 @end 9 10 @implementation HMViewController 11 12 - (void)viewDidLoad 13 { 14 [super viewDidLoad]; 15 16 [self digest:@"123"]; // 17 [self digest:@"abc"]; 18 [self digest:@"456"]; 19 } 20 21 /** 22 * 直接用MD5加密 23 */ 24 - (NSString *)digest:(NSString *)str 25 { 26 NSString *anwen = [str md5String]; 27 NSLog(@"%@ - %@", str, anwen); 28 return anwen; 29 } 30 31 /** 32 * 加盐 33 */ 34 - (NSString *)digest2:(NSString *)str 35 { 36 str = [str stringByAppendingString:Salt]; 37 38 NSString *anwen = [str md5String]; 39 NSLog(@"%@ - %@", str, anwen); 40 return anwen; 41 } 42 43 /** 44 * 多次MD5 45 */ 46 - (NSString *)digest3:(NSString *)str 47 { 48 NSString *anwen = [str md5String]; 49 50 anwen = [anwen md5String]; 51 52 NSLog(@"%@ - %@", str, anwen); 53 return anwen; 54 } 55 56 /** 57 * 先加密, 后乱序 58 */ 59 - (NSString *)digest4:(NSString *)str 60 { 61 NSString *anwen = [str md5String]; 62 63 // 注册: 123 ---- 2CB962AC59075B964B07152D234B7020 64 65 // 登录: 123 --- 202CB962AC59075B964B07152D234B70 66 67 NSString *header = [anwen substringToIndex:2]; 68 NSString *footer = [anwen substringFromIndex:2]; 69 anwen = [footer stringByAppendingString:header]; 70 71 NSLog(@"%@ - %@", str, anwen); 72 return anwen; 73 } 74 @end
View Code
(1)直接使用MD5加密(去MD5解密网站即可破解)
(2)使用加盐(通过MD5解密之后,很容易发现规律)
(3)多次MD5加密(使用MD5解密之后,发现还是密文,那就接着MD5解密)
(4)先加密,后乱序(破解难度增加)
三、注册和验证的数据处理过程
1.提交隐私数据的安全过程 – 注册
2.提交隐私数据的安全过程 – 登录
转载于:https://www.cnblogs.com/asd5551680/p/4164482.html
iOS网络编程开发-数据加密相关推荐
- iOS网络编程开发—HTTP协议
iOS网络编程开发-HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...
- iOS网络编程-配置iCloud-图文解说
配置iCloud 开发iCloud应用一方面需要准备真实的iOS设备,另一方面还需要有iOS开发者账号, 使 用iOS开发者账号登录到iOS开发中心的配置门户网站(iOS Provisioning P ...
- 《iOS网络编程与云端应用最佳实践》微博转发送书了!
<iOS网络编程与云端应用最佳实践>微博转发送书了! 新浪微博地址:http://weibo.com/2078101705/zy15U4a5D,转发本条微博即有机会获得<iOS网络编 ...
- iOS网络编程-iCloud键值数据存储编程实例
iCloud键值数据存储设计 iCloud键值数据存储编程实例,画面中有两个开关控件,左图是设备1点击"设置iCloud数据"按钮,将控件状态保存到iCloud服务器.右图是设备2 ...
- 转发网络《iOS网络编程与云端应用最佳实践》微博转发送书了
在写这篇文章之前,xxx已经写过了几篇关于改转发网络主题的文章,想要了解的朋友可以去翻一下之前的文章 <iOS网络编程与云端应用最佳实践>微博转发送书了! 新浪微博地址:http://we ...
- 【网络编程开发系列】好端端的MQTT-broker重新部署后居然出现TLS握手失败了
摘要:本文通过一次真实的现网案例复盘,深度还原TLS握手问题的排查思路和方法,希望对广大读者有所启发和帮助. 文章目录 1 写在前面 2 问题描述 2.1 项目背景 2.2 现场问题 3 场景复现 3 ...
- QT网络编程开发服务端
下一篇: QT网络编程开发客户端 文章目录 基于Qt的网络编程服务端 QTcpServer 配置 listen() close() newConnection() SINGL readyRead() ...
- iOS项目开发实战——iOS网络编程获取网页Html源代码
如今我们身处互联网的时代,任何一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比较low,这里我们将会开始使用Swift开发iOS应用,并且主要来实现 ...
- java web 进程通信_RMI网络编程开发之一 JAVA“进程间”通信方式
注意该标题是 "进程"间通信,而并非"线程"之间的通信. 线程之间的通信是多线程的讨论范畴.这里我们是要讨论分布式的独立的JAVA程序之间是怎么通信的.当然,大 ...
最新文章
- R使用glm构建logistic回归模型
- 【JBPM4】完成任务
- 【iOS篇】从容面对App崩溃
- 711 发送请求失败_会不会存在不失败的代理IP?
- 腾讯发布 Tencent SCF Toolkit VS Code 插件,轻松开发无服务器云函数
- xml2 交叉编译移植
- 联想Y470为什么安装不上CentOS7 x86_64的系统?
- 自己写的_top、_parent以及对iframe和frameset的理解
- [小结] flexbox
- 飞机大战(微信小游戏)
- 2021年全球与中国飞机飞行控制系统(FCS)行业市场规模现状及企业市场份额分析
- 有return的情况下try catch finally的执行顺序(最有说服力的总结) 后面的神评论
- Canonical标签怎么使用,Canonical标签有什么作用?
- Deployer让部署变得更加的简单
- 推荐一款备忘录便签APP简约款安卓版本
- HTML3个炫酷代码
- 13-mac中插入SD卡无法格式化,无法删除文件,只读
- 金山软件CEO张宏江:技术与经营,优化不同的参数而已
- 钙钛矿量子点异质CdSe/CdS/核-壳结构和MAPbI3/PbS晶体结构
- dbNSFP:非同义突变功能注释数据库
热门文章
- python image convert_从python运行imagemagick convert(控制台应用程序)
- 数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)
- YoloAll V2发布,集成所有主流Yolo模型于一身
- 函数可重入性及编写规范
- hands-on Machine Learning with sklearn
- 机器学习实战(六)——支持向量机
- 美团王兴评价马云:“我仍然认为他有诚信问题”,大家怎么看?
- 男女薪酬差异扩大 2018年女性薪酬不及男性8成
- VHDL其他顺序语句
- 计算机辅助设计工业产品cad竞赛试题,2017计算机辅助设计(工业产品CAD)赛项样题...