常用的加密方法:
MD5加密
AES加密
BASE64加密
常用加密的地方:
1)本地?cái)?shù)據(jù)加密
對(duì)NSUserDefaults,sqlite存儲(chǔ)文件數(shù)據(jù)加密,保護(hù)帳號(hào)和關(guān)鍵信息。
2)URL編碼加密
對(duì)程序中出現(xiàn)的URL進(jìn)行編碼加密,防止URL被靜態(tài)分析
3)網(wǎng)絡(luò)傳輸數(shù)據(jù)加密
對(duì)客戶端傳輸數(shù)據(jù)提供加密方案,有效防止通過網(wǎng)絡(luò)接口的攔截獲取
4)方法體,方法名高級(jí)混淆
對(duì)應(yīng)用程序的方法名和方法體進(jìn)行混淆,保證源碼被逆向后無法解析代碼
5)程序結(jié)構(gòu)混排加密
對(duì)應(yīng)用程序邏輯結(jié)構(gòu)進(jìn)行打亂混排,保證源碼可讀性降到最低
MD5 iOS代碼加密
創(chuàng)建MD5類,代碼如下
#import
@interfaceCJMD5:NSObject
+(NSString*)md5HexDigest:(NSString*)input;
@end
2
#import "CJMD5.h"
#import
@implementationCJMD5
+(NSString*)md5HexDigest:(NSString*)input{
constchar*str=[input UTF8String];
unsignedcharresult[CC_MD5_DIGEST_LENGTH];
CC_MD5(str,strlen(str),result);
NSMutableString*ret=[NSMutableStringstringWithCapacity:CC_MD5_DIGEST_LENGTH];
for(inti=0;i
[ret appendFormat:@"%02X",result];
}
returnret;
}
@end
3
MD5是不可逆的只有加密沒有解密,iOS代碼加密使用方式如下
NSString*userName=@"cerastes";
NSString*password=@"hello Word";
//? MD5加密
NSString*md5=[CJMD5 md5HexDigest:password];
NSLog(@"%@",md5);
//? AES加密
NSString*encryptedData=[AESCryptencrypt:userName password:password];//加密
NSString*message=[AESCryptdecrypt:encryptedData password:password];//解密
NSLog(@"加密結(jié)果 = %@",encryptedData);
NSLog(@"解密結(jié)果 = %@",message);
BASE64加密iOS代碼加密添加如下方法
.h
+(NSString*)encodeBase64String:(NSString*)input;
+(NSString*)decodeBase64String:(NSString*)input;
+(NSString*)encodeBase64Data:(NSData*)data;
+(NSString*)decodeBase64Data:(NSData*)data;
.m
+(NSString*)encodeBase64String:(NSString*)input{
NSData*data=[input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
data=[GTMBase64encodeData:data];
NSString*base64String=[[NSStringalloc]initWithData:data encoding:NSUTF8StringEncoding];
returnbase64String;
}
+(NSString*)decodeBase64String:(NSString*)input{
NSData*data=[input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
data=[GTMBase64decodeData:data];
NSString*base64String=[[NSStringalloc]initWithData:data encoding:NSUTF8StringEncoding];
returnbase64String;
}
+(NSString*)encodeBase64Data:(NSData*)data{
data=[GTMBase64encodeData:data];
NSString*base64String=[[NSStringalloc]initWithData:data encoding:NSUTF8StringEncoding];
returnbase64String;
}
+(NSString*)decodeBase64Data:(NSData*)data{
data=[GTMBase64decodeData:data];
NSString*base64String=[[NSStringalloc]initWithData:data encoding:NSUTF8StringEncoding];
returnbase64String;
}
BASE64加密iOS代碼加密使用方法
//? ? BASE64加密
NSString*baseEncodeString=[GTMBase64encodeBase64String:password];
NSString*baseDecodeString=[GTMBase64decodeBase64String:baseEncodeString];
NSLog(@"baseEncodeString = %@",baseEncodeString);
NSLog(@"baseDecodeString = %@",baseDecodeString);
?