首页 > 代码库 > ios Base64编解码工具类及使用
ios Base64编解码工具类及使用
为了避免明码传递http内容,可以用base64编码后传输,收到方再解码,也方便了2进制数据的字符串式传输。
对于ios来说,google给提供了一个很好的工具类,方便进行base64编解码,当然也可以用openssl来进行,但这东西相对来
说比较麻烦。google给提供了3个文件就够了。
官网地址是:
http://code.google.com/p/google-toolbox-for-mac/
这里面有很多宝贝,如果自己找很难找到这3个文件,所以我加到附件里。解压后放到ios工程中即可使用。
使用方法简介:
查看GTMBase64.h头文件里面都有详细的函数说明,这里只举两个例子:
1.编码,即base64加密:
使用函数:
// decodeData:
//
/// Base64 decodes contents of the NSData object.
//
/// Returns:
/// A new autoreleased NSData with the decoded payload. nil for any error.
//
+(NSData *)decodeData:(NSData *)data;
使用方法示例:
NSString *input =@"Hello World";
NSData *data = http://www.mamicode.com/[input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
data = http://www.mamicode.com/[GTMBase64 encodeData:data];
NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"base64String =%@ ", base64String);
如果成功的话,加密后的数据打印出来是:SGVsbG8sIFdvcmxk
这样就可以从http中传输了。
2.解码,即base64解密:
这里使用函数:
// decodeString:
//
/// Base64 decodes contents of the NSString.
//
/// Returns:
/// A new autoreleased NSData with the decoded payload. nil for any error.
//
+(NSData *)decodeString:(NSString *)string;
使用方法是:
NSData *data =http://www.mamicode.com/[GTMBase64 decodeString:@"SGVsbG8sIFdvcmxk"];
这样就将NSString类型的原文解析成了NSData类型的数据了,可以用
NSLog(@"data = http://www.mamicode.com/%@",data);
打印出来,log输出16进制的例如:
Base64Test[5670:c07] data = http://www.mamicode.com/<01000a6e 735f766f 645f3030 3102005c 81705900 00000000 005c8020 0101124c 803a0001 18beee29 11aef543 7a02e35c 012769ad 08619971 50e57f2c>
如果把data用NSString类型输出的话,内容是Hello, World
ios Base64编解码工具类及使用