iOS常用暗号化方式
3374 ワード
iOSコード暗号化の一般的な暗号化方式、一般的なiOSコード暗号化の一般的な暗号化方式アルゴリズムはMD 5暗号化、AES暗号化、BASE 64暗号化を含む.
MD 5 iOSコード暗号化MD 5クラスの作成
AES暗号化iOSコード暗号化
BASE 64暗号化iOSコード暗号化:
1)ローカルデータ暗号化NSUserDefaults,sqliteストレージファイルデータ暗号化,アカウント保護,キー情報.2)URL符号化暗号化プログラムに出現するURLを符号化暗号化し,URLが静的解析されることを防止する3)ネットワーク伝送データ暗号化クライアント伝送データに暗号化方式を提供し,ネットワークインタフェースのブロックによる取得を効果的に防止する4)メソッド体,メソッド名の高度な混同アプリケーションシーケンスのメソッド名とメソッド体の混同,ソースコードが逆方向になってもコードを解析できないことを保証する5)プログラム構造の混成暗号化はアプリケーションの論理構造を乱す混成を行い、ソースコードの可読性が最低に下がることを保証する
MD 5 iOSコード暗号化MD 5クラスの作成
#import
@interface CJMD5 : NSObject
+(NSString *)md5HexDigest:(NSString *)input;
@end
#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
//MD5 ,iOS
NSString *userName = @"cerastes";
NSString *password = @"hello Word";
// MD5
NSString *md5 = [CJMD5 md5HexDigest:password];
NSLog(@"%@",md5);
AES暗号化iOSコード暗号化
//AES iOS
// AES
NSString *encryptedData = [AESCrypt encrypt:userName password:password];//
NSString *message = [AESCrypt decrypt:encryptedData password:password]; //
NSLog(@" = %@",encryptedData);
NSLog(@" = %@",message);
BASE 64暗号化iOSコード暗号化:
#import
@interface BASE64_Demo : NSObject
+ (NSString*)encodeBase64String:(NSString *)input;
+ (NSString*)decodeBase64String:(NSString *)input;
+ (NSString*)encodeBase64Data:(NSData *)data;
+ (NSString*)decodeBase64Data:(NSData *)data;
@end
#import "BASE64_Demo.h"
+ (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;
}
//BASE64 iOS
// BASE64
NSString *baseEncodeString = [GTMBase64 encodeBase64String:password];
NSString *baseDecodeString = [GTMBase64 decodeBase64String:baseEncodeString];
NSLog(@"baseEncodeString = %@",baseEncodeString);
NSLog(@"baseDecodeString = %@",baseDecodeString);
1)ローカルデータ暗号化NSUserDefaults,sqliteストレージファイルデータ暗号化,アカウント保護,キー情報.2)URL符号化暗号化プログラムに出現するURLを符号化暗号化し,URLが静的解析されることを防止する3)ネットワーク伝送データ暗号化クライアント伝送データに暗号化方式を提供し,ネットワークインタフェースのブロックによる取得を効果的に防止する4)メソッド体,メソッド名の高度な混同アプリケーションシーケンスのメソッド名とメソッド体の混同,ソースコードが逆方向になってもコードを解析できないことを保証する5)プログラム構造の混成暗号化はアプリケーションの論理構造を乱す混成を行い、ソースコードの可読性が最低に下がることを保証する