- 网络应用程序
数据的原则:
| 序号 | 原则内容 |
|---|---|
| 原则① | 在网络上"不允许"传输用户隐私数据的"明文" |
| 原则② | 在本地"不允许"保存用户隐私数据的"明文" |
- 目前流行的加密方式:
| 加密类型 | 方法 |
|---|---|
哈希(散列)函数 |
** MD5**、SHA1、 SHA256
|
对称加密算法 |
DES、3DES、 AES(高级密码标准,美国国家安全局使用的) |
非对称加密算法 |
RSA |
- 提升MD5加密安全性(MD5加密demo)
| 序号 | 方法 |
|---|---|
| 1 | * 加"盐"(佐料) |
| 2 |
HMAC:给定一个"秘钥",对明文进行加密,并且做"两次散列"!-> 得到的结果,还是32个字符 |
MD5加密.gif
-
注意:
- 密码:`服务器`并`不需要知道`用户真实的`密码`!
- 破解:
- 例如:字符
520it进行代码加密,然后 进入md5解密网站:http://www.cmd5.com 网站解密。
MD5解密.gif
- 结果:普通的md5轻松解密。 md5加盐和HMAC没有被解密。
- 代码
- 方法一:MD5 (加密)
//方法1 .MD5
NSLog(@"\n -------------\n md5 = %@\n -------------\n ",[@"520it" md5String]);
- 方法二:MD5(明文+盐) (加密)
#define salt @"shdcskjfcbskfnslfhs.kfsfvmsf8348390(*^^6R%@@IJEKHRKWKFGKF"
//方法2 . (明文+加盐)MD5
NSLog(@"\n -------------\n md5+salt = %@\n -------------\n ",[[@"520it" stringByAppendingString:salt] md5String]);
- 方法三: HMAC (加密)
//方法3 . HMAC (key是服务器给的)
NSLog(@"\n -------------\n HMAC = %@\n -------------\n ",[@"520it" hmacMD5StringWithKey:@"xiaomage"]);
-
总结
| 序号 | 加密(iOS代码) | 解密(MD5网站) | 备注 |
|---|---|---|---|
| 1 | MD5 |
成功 | |
| 2 |
MD5+盐(salt) |
失败 |
盐:自定义的字符串#define salt @"shdcskjfcbskfnslfhs.kfsfvmsf8348390(*^^6R%@@IJEKHRKWKFGKF"
|
| 3 | HMAC |
失败 | HMAC原理:给定一个"秘钥",对明文进行加密,并且做"两次散列"!-> 得到的结果,还是32个字符 |
-
散列(哈希)函数 特点:
| 序号 |
散列(哈希)函数特点 |
|---|---|
| 1 | 算法是公开的 |
| 2 |
"对相同的数据加密,得到的结果是一样的" |
| 3 | 对不同的数据加密,得到的结果是定长的,MD5对不同的数据进行加密,得到的结果都是32 个字符长度的字符串 |
| 4 | 信息摘要,信息"指纹",是用来做数据识别的! |
| 5 |
不能反算的 |
-
RSA简单说明:加密算法算法是公开的,加密方式如下:
| 序号 | 方式内容 |
|---|---|
| 方式① | "公钥"加密,"私钥"解密 |
| 方式② | "私钥"加密,"公钥"解密 |









网友评论