首页(yè)> 技(jì )术观点 > iOS app加密技(jì )术及分(fēn)析

iOS app加密技(jì )术及分(fēn)析

发布时间:2015-11-11

自从苹果开放了加密库,iOS加密也逐渐走进了开发者的视野。目前,iOS app加密方式包括MD5加密、AES加密、BASE64加密三大算法,今天,爱加密小(xiǎo)编就為(wèi)大家解析iOS app加密的这几种方式。

MD5 iOS app加密

创建MD5类,代码如下

#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<CC_MD5_DIGEST_LENGTH; i++) {

        [ret appendFormat:@"%02X",result];

    }

    return ret;

}

@end 

MD5是不可(kě)逆的只有(yǒu)加密没有(yǒu)解密,iOS app加密使用(yòng)方式如下

NSString *userName = @"cerastes";

NSString *password = @"hello Word";

//   MD5加密

NSString *md5 = [CJMD5 md5HexDigest:password];

NSLog(@"%@",md5);

 

AES加密iOS app加密

AES加密iOS app加密使用(yòng)方法

//  AES加密

NSString *encryptedData = [AESCrypt encrypt:userName password:password];//加密

NSString *message = [AESCrypt decrypt:encryptedData password:password]; //解密

NSLog(@"加密结果 = %@",encryptedData);

NSLog(@"解密结果 = %@",message);

 

BASE64加密iOS app加密

BASE64加密iOS app加密添加如下方法

.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 = [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 app加密使用(yòng)方法

//    BASE64加密

    NSString *baseEncodeString = [GTMBase64 encodeBase64String:password];

    NSString *baseDecodeString = [GTMBase64 decodeBase64String:baseEncodeString];

    NSLog(@"baseEncodeString = %@",baseEncodeString);

    NSLog(@"baseDecodeString = %@",baseDecodeString);

以上就是iOS app加密的三种算法。对于初學(xué)者来说,iOS加密还是有(yǒu)点难度的。如果不想去研究iOS加密,可(kě)以體(tǐ)验爱加密(www.ijiami.cn)提供的专业的iOS加密服務(wù)。

  

爱加密的iOS加密主要从以下这三个方面来实现。

1)本地数据加密

对NSUserDefaults,sqlite存储文(wén)件数据加密,保护帐号和关键信息。

2)URL编码加密

对程序中(zhōng)出现的URL进行编码加密,防止URL被静态分(fēn)析

3)网络传输数据加密

对客户端传输数据提供加密方案,有(yǒu)效防止通过网络接口的拦截获取

4)方法體(tǐ),方法名(míng)高级混淆

对应用(yòng)程序的方法名(míng)和方法體(tǐ)进行混淆,保证源码被逆向后无法解析代码

5)程序结构混排加密

对应用(yòng)程序逻辑结构进行打乱混排,保证源码可(kě)读性降到最低


加入收藏