加密
1 base64加密 可逆的 //传送的时候,也需要base64,这个时候,需要后台的支持
//密码经过base64加密之后,再保存 base64Encode
加密
- (NSString *)base64Encode:(NSString *)originalStr{//zhang
//1.需要将我们原始的字符串转成base64的二进制
NSData *base64Data = [originalStr dataUsingEncoding:NSUTF8StringEncoding];
//2.再将我们上面的base64的二进制转成base64的字符串
NSString *base64Str = [base64Data base64EncodedStringWithOptions:0];
return base64Str;
}
解密
- (NSString *)base64Decode:(NSString *)base64Str{
//1.第一步,将base64Str解码成base64的二进制
if (base64Str==nil) return @"";
NSData *base64Data = [[NSData alloc] initWithBase64EncodedString:base64Str options:0];
//2.需要将上面的base64的二进制转成最原始的字符串
NSString *originalStr = [[NSString alloc] initWithData:base64Data encoding:NSUTF8StringEncoding];
return originalStr;
}
2 md5加密 Security
折腾MD5必须和后台商量
//originalStr = [originalStr stringByAppendingString:@"ABC!@#DZH"];//123456ABC!@#DZH
//originalStr = originalStr.md5String.md5String.md5String;
这个盐一定要和后台商量好
* 方案二 MD5 + 盐
pwd = [pwd stringByAppendingString:salt].md5String;
盐值要够咸,可以从服务器获取
* 安全方案三 - 多次MD5
NSString *anwen = [str md5String];
anwen = [anwen md5String];
MD5的次数越多,安全级别越高
* 安全方案四 - 先MD5,后有规律的乱序
/**
* 先加密, 后乱序
*/
- (NSString *)digest4:(NSString *)str
{
NSString *anwen = [str md5String];
// 注册: 123 ---- 2CB962AC59075B964B07152D234B7020
// 登录: 123 --- 202CB962AC59075B964B07152D234B70
NSString *header = [anwen substringToIndex:2];
NSString *footer = [anwen substringFromIndex:2];
anwen = [footer stringByAppendingString:header];
NSLog(@"%@ - %@", str, anwen);
return anwen;
}
一般先MD5,再有规律的乱序,基本就解不出来了,但是千万要记住规律,别搞得自己都忘记了
MD5的另一个用法 : 云盘 上传多个相同文件
3 钥匙串 AES256算法
本地密码保存
SSKeychain 封装好的
ios7.0.3以后公开的
1 base64加密 可逆的 //传送的时候,也需要base64,这个时候,需要后台的支持
//密码经过base64加密之后,再保存 base64Encode
加密
- (NSString *)base64Encode:(NSString *)originalStr{//zhang
//1.需要将我们原始的字符串转成base64的二进制
NSData *base64Data = [originalStr dataUsingEncoding:NSUTF8StringEncoding];
//2.再将我们上面的base64的二进制转成base64的字符串
NSString *base64Str = [base64Data base64EncodedStringWithOptions:0];
return base64Str;
}
解密
- (NSString *)base64Decode:(NSString *)base64Str{
//1.第一步,将base64Str解码成base64的二进制
if (base64Str==nil) return @"";
NSData *base64Data = [[NSData alloc] initWithBase64EncodedString:base64Str options:0];
//2.需要将上面的base64的二进制转成最原始的字符串
NSString *originalStr = [[NSString alloc] initWithData:base64Data encoding:NSUTF8StringEncoding];
return originalStr;
}
2 md5加密 Security
折腾MD5必须和后台商量
//originalStr = [originalStr stringByAppendingString:@"ABC!@#DZH"];//123456ABC!@#DZH
//originalStr = originalStr.md5String.md5String.md5String;
这个盐一定要和后台商量好
* 方案二 MD5 + 盐
pwd = [pwd stringByAppendingString:salt].md5String;
盐值要够咸,可以从服务器获取
* 安全方案三 - 多次MD5
NSString *anwen = [str md5String];
anwen = [anwen md5String];
MD5的次数越多,安全级别越高
* 安全方案四 - 先MD5,后有规律的乱序
/**
* 先加密, 后乱序
*/
- (NSString *)digest4:(NSString *)str
{
NSString *anwen = [str md5String];
// 注册: 123 ---- 2CB962AC59075B964B07152D234B7020
// 登录: 123 --- 202CB962AC59075B964B07152D234B70
NSString *header = [anwen substringToIndex:2];
NSString *footer = [anwen substringFromIndex:2];
anwen = [footer stringByAppendingString:header];
NSLog(@"%@ - %@", str, anwen);
return anwen;
}
一般先MD5,再有规律的乱序,基本就解不出来了,但是千万要记住规律,别搞得自己都忘记了
MD5的另一个用法 : 云盘 上传多个相同文件
3 钥匙串 AES256算法
本地密码保存
SSKeychain 封装好的
ios7.0.3以后公开的