iOS常用暗号化方式

3374 ワード

iOSコード暗号化の一般的な暗号化方式、一般的なiOSコード暗号化の一般的な暗号化方式アルゴリズムはMD 5暗号化、AES暗号化、BASE 64暗号化を含む.
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)プログラム構造の混成暗号化はアプリケーションの論理構造を乱す混成を行い、ソースコードの可読性が最低に下がることを保証する