IOS常见的加密方法,常用的MD5和Base64

来源:互联网 发布:怎么才能注册淘宝账号 编辑:程序博客网 时间:2024/04/30 22:50
iOS代码加密常用加密方式
iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文
MD5 iOS代码加密:

    1.
MD5 iOS代码加密
创建MD5类,代码如下:

#import <Foundation/Foundation.h>

#import <CommonCrypto/CommonDigest.h>
@interface MD5String : NSObject

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

@end
    2.
#import "MD5String.h"

@implementation MD5String

+(NSString *)MD5:(NSString *)input
{
    const char *cStr = [input UTF8String];
    unsigned char digest[CC_MD5_DIGEST_LENGTH];
    CC_MD5( cStr, strlen(cStr), digest ); // This is the md5 call
    
    NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
    
    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
    {
        [output appendFormat:@"%02x", digest[i]];
    }
    
    return  output;
}

@end
    3.MD5是不可逆的只有加密没有解密,iOS代码加密使用方式如下
:

NSMutableString *string1 = [[NSMutableString alloc] initWithString:_pswTextF.text];
    NSString *pwdMD5 = [MD5String MD5:string1];
    NSString *newPwd = [pwdMD5 stringByReplacingOccurrencesOfString:@"d" withString:@“h”];//将加密的密码再次替换可以增加数据安全程度

AES加密iOS代码加密:

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

NSString *encryptedData = [AESCrypt encrypt:userName password:password];//加密
    NSString *message = [AESCrypt decrypt:encryptedData password:password]; //解密
    NSLog(@"加密结果 = %@",encryptedData);
    NSLog(@"解密结果 = %@",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


利用md5,和base64对应用中的敏感数据进行的加密和编码。
1. md5和base64的区别
   MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。 计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。md5 运算结果是一个固定长度为128位的二进制数,经过一系列的运算得到32个16进制数。
   Base64是一种使用64基的位置计数法。它使用2的最大次方来代表仅可打印的ASCII 字符。这使它可用来作为电子邮件的传输编码。在Base64中的变量使用字符A-Z、a-z和0-9 ,这样共有62个字符,用来作为开始的64个数字,最后两个用来作为数字的符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。

2.MD5加密算法是不可逆的,base64加密算法是可逆的

iOS应用代码加密:
    1.    
除了以上的三种算法的iOS代码加密之外,iOS应用代码加密也是非常重要的,这里就不贴代码了,主要的iOS代码加密方式如下,iOS应用代码加密是 爱 加 密 平台提供的专业的iOS加密服务。





    2.
1)本地数据加密
对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息。





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





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


4)方法体,方法名高级混淆
对应用程序的方法名和方法体进行混淆,保证源码被逆向后无法解析代码





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




1 0
原创粉丝点击