码迷,mamicode.com
首页 > 移动开发 > 详细

iOS——常用加密方式

时间:2015-11-06 00:04:52      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:

 iOS代码加密常用加密方式,常见的iOS代码加密算法包括MD5加密、AES加密、BASE64加密。

三大算法iOS代码加密是如何进行加密的:

///////////////////////////////////////////////////////////////////

    MD5 iOS代码加密使用方法

///////////////////////////////////////////////////////////////////

//创建MD5类,代码如下

#import <Foundation/Foundation.h>

@interface CJMD5:NSObject

+(NSString *)md5HexDigest:(NSString *)input;

@end

 

#import "CJMD5.h"

#import <CommonCrypto/CommonDigest.h>

@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是不可逆的只有加密没有解密,iOS代码加密使用方式如下

NSString *userName = @"woshinidaye";

NSString *password = @"daohaosiquanjia";

//MD5加密

NSString *md5 = [CJMD5 md5HexDigest:password];

NSLog(@"%@",md5);

///////////////////////////////////////////////////////////////////

    AES加密iOS代码加密使用方法

///////////////////////////////////////////////////////////////////

//AES加密

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

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

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

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

///////////////////////////////////////////////////////////////////

    BASE64加密iOS代码加密使用方法

///////////////////////////////////////////////////////////////////

.h

+(NSStirng *)encodeBase64String:(NSString *)input;

+(NSStirng *)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:NSUTF8String 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 encodeData: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);

///////////////////////////////////////////////////////////////////

      iOS应用代码加密

///////////////////////////////////////////////////////////////////

除了以上三种算法的iOS代码加密之外,iOS应用代码加密也是非常重要的.

主要的iOS代码加密方式如下,iOS应用代码加密是 爱加密平台提供的iOS加密服务.

1.使用加密前

2.编译后,加密前

技术分享

 

技术分享

3.编译后,加密后

(1)本地数据加密

  对NSUserDefault,sqlite存储文件数据加密,保护账号和关键信息。

(2)URL编码加密

  对程序中出现的URL进行编码加密,防止URL被静态分析

(3)网络传输数据加密

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

(4)方法体,方法名高级混淆

  对应用程序的方法名和方法体加密进行混淆,保证密码被逆向后无法解析代码

(5)程序结构混排加密

  对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低。

 

iOS——常用加密方式

标签:

原文地址:http://www.cnblogs.com/crybee/p/4941051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!