首页 > 代码库 > 数据安全

数据安全

数据安全与实例

1.网络数据加密
1>加密对象:隐私数据,比如密码、银行信息
2>加密方案
*
提交隐私数据,必须用POST请求
*
使用加密算法对隐私数据进行加密,比如MD5
3>加密增强:为了加大破解的难度
*
对明文进行2MD5 MD5(MD5($pass))
*
先对明文撒盐,再进行MD5 MD5($pass.$salt)

2.本地存储加密
1> 加密对象:重要的数据,比如游戏数据。

3.代码安全问题
1> 反编译工具:逆向工程
* 反编译出来都是纯C语言,可读性不高,但是可以知道源代码里面用的是什么框架。

2> 解决方案:发布之前对代码进行混淆。

4.什么是MD5
全称是Message Digest Algorithm5,译为消息摘要算法第5
效果:对输入信息生成唯一的128位散列值(32个字符)

5.MD5
的特点
输入两个不同的明文不会得到相同的输出值
根据输出值,不能得到原始的明文,即其过程不可逆

6.MD5
的应用
由于MD5加密算法具有较好的安全性,而且免费,因此该加密算法被广泛使用
主要运用在数字签名、文件完整性验证以及口令加密等方面

MD5
解密网站:http://www.cmd5.com

7.MD5加密实例

/**
 *  MD5($pass.$salt)
 *
 * 
@param text 明文
 *
 * 
@return 加密后的密文
 */

- (
NSString*)MD5Salt:(NSString*)text
{
   
// 撒盐:随机地往明文中插入任意字符串
   
NSString *salt = [textstringByAppendingString:@"aaa"];
   
return [saltmd5String];
}

注意:
撒盐:随机地往明文中插入随意字符串,但是只能插入固定的字符串,不然服务器也不能解析。

/**
 *  MD5(MD5($pass))
 *
 * 
@param text 明文
 *
 * 
@return 加密后的密文
 */

- (
NSString*)doubleMD5:(NSString*)text
{
   
return [[textmd5String]md5String];
}

/**
 * 
先加密,后乱序
 *
 * 
@param text 明文
 *
 * 
@return 加密后的密文
 */

- (
NSString*)MD5Reorder:(NSString*)text
{
   
NSString *pwd = [textmd5String];
   
   
// 加密后pwd == 3f853778a951fd2cdf34dfd16504c5d8
   
NSString *prefix = [pwdsubstringFromIndex:2];
   
NSString *subfix = [pwdsubstringToIndex:2];
   
   
// 乱序后 result == 853778a951fd2cdf34dfd16504c5d83f
   
NSString *result = [prefixstringByAppendingString:subfix];
   
   
NSLog(@"\ntext=%@\npwd=%@\nresult=%@", text, pwd, result);
   
   
return result;
}

数据安全