http://jingyan.baidu.com/article/fedf07375d695e35ac89772c.html
iOS代碼加密常用加密方式,常見的iOS代碼加密常用加密方式算法包括MD5加密撵颊、AES加密倦炒、BASE64加密眼姐,三大算法iOS代碼加密是如何進(jìn)行加密的卿泽,且看下文
MD5 iOS代碼加密
1?MD5 iOS代碼加密
創(chuàng)建MD5類崇众,代碼如下
#import
@interface CJMD5 : NSObject
+(NSString *)md5HexDigest:(NSString *)input;
@end
2
#import "CJMD5.h"
#import
@implementation CJMD5
+(NSString *)md5HexDigest:(NSString *)input{
const char* str = [input UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(str, strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
for(int i = 0; i
[ret appendFormat:@"%02X",result];
}
return ret;
}
@end
3?MD5是不可逆的只有加密沒有解密滤蝠,iOS代碼加密使用方式如下
NSString *userName = @"cerastes";
NSString *password = @"hello Word";
// ? MD5加密
NSString *md5 = [CJMD5 md5HexDigest:password];
NSLog(@"%@",md5);
END
AES加密iOS代碼加密
1?AES加密iOS代碼加密使用方法
// ?AES加密
NSString *encryptedData = [AESCrypt encrypt:userName password:password];//加密
NSString *message = [AESCrypt decrypt:encryptedData password:password]; //解密
NSLog(@"加密結(jié)果 = %@",encryptedData);
NSLog(@"解密結(jié)果 = %@",message);
END
BASE64加密iOS代碼加密
1?BASE64加密iOS代碼加密添加如下方法
.h
+ (NSString*)encodeBase64String:(NSString *)input;
+ (NSString*)decodeBase64String:(NSString *)input;
+ (NSString*)encodeBase64Data:(NSData *)data;
+ (NSString*)decodeBase64Data:(NSData *)data;
2
.m
+ (NSString*)encodeBase64String:(NSString * )input {
NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
data = [GTMBase64 encodeData:data];
NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return base64String;
}
+ (NSString*)decodeBase64String:(NSString * )input {
NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
data = [GTMBase64 decodeData:data];
NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return base64String;
}
+ (NSString*)encodeBase64Data:(NSData *)data {
data = [GTMBase64 encodeData:data];
NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return base64String;
}
+ (NSString*)decodeBase64Data:(NSData *)data {
data = [GTMBase64 decodeData:data];
NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return base64String;
}
3?BASE64加密iOS代碼加密使用方法
// ? ?BASE64加密
NSString *baseEncodeString = [GTMBase64 encodeBase64String:password];
NSString *baseDecodeString = [GTMBase64 decodeBase64String:baseEncodeString];
NSLog(@"baseEncodeString = %@",baseEncodeString);
NSLog(@"baseDecodeString = %@",baseDecodeString);
END
iOS應(yīng)用代碼加密
除了以上的三種算法的iOS代碼加密之外,iOS應(yīng)用代碼加密也是非常重要的嘱巾,這里就不貼代碼了憨琳,主要的iOS代碼加密方式如下诫钓,iOS應(yīng)用代碼加密是 愛 加 密 平臺(tái)提供的專業(yè)的iOS加密服務(wù)。
1)本地?cái)?shù)據(jù)加密
對NSUserDefaults栽渴,sqlite存儲(chǔ)文件數(shù)據(jù)加密尖坤,保護(hù)帳號(hào)和關(guān)鍵信息。
2)URL編碼加密
對程序中出現(xiàn)的URL進(jìn)行編碼加密闲擦,防止URL被靜態(tài)分析
3)網(wǎng)絡(luò)傳輸數(shù)據(jù)加密
對客戶端傳輸數(shù)據(jù)提供加密方案慢味,有效防止通過網(wǎng)絡(luò)接口的攔截獲取
4)方法體,方法名高級混淆
對應(yīng)用程序的方法名和方法體進(jìn)行混淆墅冷,保證源碼被逆向后無法解析代碼
5)程序結(jié)構(gòu)混排加密
對應(yīng)用程序邏輯結(jié)構(gòu)進(jìn)行打亂混排纯路,保證源碼可讀性降到最低