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网络编程开发-数据加密相关推荐

  1. iOS网络编程开发—HTTP协议

    iOS网络编程开发-HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...

  2. iOS网络编程-配置iCloud-图文解说

    配置iCloud 开发iCloud应用一方面需要准备真实的iOS设备,另一方面还需要有iOS开发者账号, 使 用iOS开发者账号登录到iOS开发中心的配置门户网站(iOS Provisioning P ...

  3. 《iOS网络编程与云端应用最佳实践》微博转发送书了!

    <iOS网络编程与云端应用最佳实践>微博转发送书了! 新浪微博地址:http://weibo.com/2078101705/zy15U4a5D,转发本条微博即有机会获得<iOS网络编 ...

  4. iOS网络编程-iCloud键值数据存储编程实例

    iCloud键值数据存储设计 iCloud键值数据存储编程实例,画面中有两个开关控件,左图是设备1点击"设置iCloud数据"按钮,将控件状态保存到iCloud服务器.右图是设备2 ...

  5. 转发网络《iOS网络编程与云端应用最佳实践》微博转发送书了

    在写这篇文章之前,xxx已经写过了几篇关于改转发网络主题的文章,想要了解的朋友可以去翻一下之前的文章 <iOS网络编程与云端应用最佳实践>微博转发送书了! 新浪微博地址:http://we ...

  6. 【网络编程开发系列】好端端的MQTT-broker重新部署后居然出现TLS握手失败了

    摘要:本文通过一次真实的现网案例复盘,深度还原TLS握手问题的排查思路和方法,希望对广大读者有所启发和帮助. 文章目录 1 写在前面 2 问题描述 2.1 项目背景 2.2 现场问题 3 场景复现 3 ...

  7. QT网络编程开发服务端

    下一篇: QT网络编程开发客户端 文章目录 基于Qt的网络编程服务端 QTcpServer 配置 listen() close() newConnection() SINGL readyRead() ...

  8. iOS项目开发实战——iOS网络编程获取网页Html源代码

    如今我们身处互联网的时代,任何一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比较low,这里我们将会开始使用Swift开发iOS应用,并且主要来实现 ...

  9. java web 进程通信_RMI网络编程开发之一 JAVA“进程间”通信方式

    注意该标题是 "进程"间通信,而并非"线程"之间的通信. 线程之间的通信是多线程的讨论范畴.这里我们是要讨论分布式的独立的JAVA程序之间是怎么通信的.当然,大 ...

最新文章

  1. R使用glm构建logistic回归模型
  2. 【JBPM4】完成任务
  3. 【iOS篇】从容面对App崩溃
  4. 711 发送请求失败_会不会存在不失败的代理IP?
  5. 腾讯发布 Tencent SCF Toolkit VS Code 插件,轻松开发无服务器云函数
  6. xml2 交叉编译移植
  7. 联想Y470为什么安装不上CentOS7 x86_64的系统?
  8. 自己写的_top、_parent以及对iframe和frameset的理解
  9. [小结] flexbox
  10. 飞机大战(微信小游戏)
  11. 2021年全球与中国飞机飞行控制系统(FCS)行业市场规模现状及企业市场份额分析
  12. 有return的情况下try catch finally的执行顺序(最有说服力的总结) 后面的神评论
  13. Canonical标签怎么使用,Canonical标签有什么作用?
  14. Deployer让部署变得更加的简单
  15. 推荐一款备忘录便签APP简约款安卓版本
  16. HTML3个炫酷代码
  17. 13-mac中插入SD卡无法格式化,无法删除文件,只读
  18. 金山软件CEO张宏江:技术与经营,优化不同的参数而已
  19. 钙钛矿量子点异质CdSe/CdS/核-壳结构和MAPbI3/PbS晶体结构
  20. dbNSFP:非同义突变功能注释数据库

热门文章

  1. python image convert_从python运行imagemagick convert(控制台应用程序)
  2. 数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)
  3. YoloAll V2发布,集成所有主流Yolo模型于一身
  4. 函数可重入性及编写规范
  5. hands-on Machine Learning with sklearn
  6. 机器学习实战(六)——支持向量机
  7. 美团王兴评价马云:“我仍然认为他有诚信问题”,大家怎么看?
  8. 男女薪酬差异扩大 2018年女性薪酬不及男性8成
  9. VHDL其他顺序语句
  10. 计算机辅助设计工业产品cad竞赛试题,2017计算机辅助设计(工业产品CAD)赛项样题...