zoukankan      html  css  js  c++  java
  • 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 = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

        data = [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 =[GTMBase64 decodeString:@"SGVsbG8sIFdvcmxk"];

    这样就将NSString类型的原文解析成了NSData类型的数据了,可以用

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

       打印出来,log输出16进制的例如: 

    Base64Test[5670:c07] data = <01000a6e 735f766f 645f3030 3102005c 81705900 00000000 005c8020 0101124c 803a0001 18beee29 11aef543 7a02e35c 012769ad 08619971 50e57f2c>

    如果把data用NSString类型输出的话,内容是Hello, World

  • 相关阅读:
    Python----定义
    [转载]Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
    彻底明白IP地址——计算相关地址
    [转载] 教你如何迅速秒杀掉:99%的海量数据处理面试题
    [转载]从B 树、B+ 树、B* 树谈到R 树
    [转载]Java抽象类和接口的学习
    [转载]字符串匹配的Boyer-Moore算法
    [转载]字符串匹配的KMP算法
    [转载]孤儿进程与僵尸进程[总结]
    [转载]Huffman编码压缩算法
  • 原文地址:https://www.cnblogs.com/lovewx/p/4011608.html
Copyright © 2011-2022 走看看