使用GTMBase64编码解码字符串

说明:BASE64不是用来加密的。你看看经过BASE64编码后的字符串,全部都是由标准键盘上面的常规字符组成,这样编码后的字符串在网关之间传递不会产生UNICODE字符串不能识别或者丢失的现象。你再仔细研究下EMAIL就会发现其实EMAIL就是用base64编码过后再发送的。然后接收的时候再还原。
    还有一种情况下用BASE64编码也很好,比如一个图片文件,或者其他任何二进制文件。我可以把它编码成字符串。这样用XML或者数据库就能直接以文本的方式来存储这些文件了。
base64是一种编码方式,编码算法完全公开,所以逆向解码即可

 
 

使用GTMBase64需要在工程中加入三个文件

GTMDefines.h
GTMBase64.h
GTMBase64.m

你可以在这里找到这三个文件
http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/?r=87

示例代码:

复制代码
#import "GTMBase64.h"

- (void)testExample
{
    NSData *data = [@"HelloWorld" dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
    NSString* encoded = [[NSString alloc] initWithData:[GTMBase64 encodeData:data] encoding:NSUTF8StringEncoding]; 
    NSLog(@"encoded:%@", encoded);
    NSString* decoded = [[NSString alloc] initWithData:[GTMBase64 decodeString:encoded] encoding:NSUTF8StringEncoding];
    NSLog(@"decoded:%@", decoded);
    [encoded release];
    [decoded release];
}
复制代码

 

输出:

2012-04-10 12:13:10.121 fs_test[7370:b603] encoded:SGVsbG9Xb3JsZA==
2012-04-10 12:13:10.122 fs_test[7370:b603] decoded:HelloWorld

 
 
使用示例:
引入头文件:
#import "GTMBase64.h"
UIImage *image;
NSData *data= UIImagePNGRepresentation(image);
    if([data length]>0){
        data = [GTMBase64 encodeData:data];                 //编码
    }
   if([data length]>0){
        data = [GTMBase64 decodeData:data];                  //解码
   }

你可能感兴趣的:(使用GTMBase64编码解码字符串)