`
dingran
  • 浏览: 376253 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 

 

分享到:
评论

相关推荐

    Base64编解码Android和ios的例子,补充JNI中的例子

    在iOS平台上,Base64编解码可以通过使用Foundation框架中的`NSData`类实现。`NSData`提供了`dataWithBase64EncodedString:`和`base64EncodedStringWithOptions:`两个方法。下面展示了如何在Swift中使用这两个方法: ...

    Base64工具类 jar包 jodd-3.6.6

    在Jodd库中,Base64工具类通常位于`org.jodd.io`或`org.jodd.util`等包下,这些工具类可以帮助开发者方便地处理Base64编码和解码任务,比如将图片、文本或者其他二进制数据转换成Base64字符串,或者将Base64字符串...

    iOS&OSX; Base64加密解密

    在iOS和OSX平台上,开发人员经常使用Base64来处理加密和解密操作,特别是在网络通信、存储敏感信息或者在不同格式之间转换数据时。 Base64的基本原理是将每3个字节的数据(24位)转化为4个6位的字符(总计26^6=64个...

    加密使用的base64类

    在iOS中,Apple提供了内置的Foundation框架,其中`NSData`类有一个`base64EncodedStringWithOptions:`方法可以用于Base64编码,而`initWithBase64EncodedString:options:`则用于解码。这些方法可以方便地处理Base64...

    iOS GTMBase64文件

    在iOS开发中,GTMBase64是一个常用的库,它提供了对Base64编码和解码的支持。...总的来说,GTMBase64是iOS开发中一个实用的工具,它为开发者提供了简单且高效的Base64编码和解码功能,使得处理二进制数据变得更加方便。

    iOS开发 GTMBase64文件

    然而,iOS 7及更高版本已经内置了`NSData`的分类,提供Base64编码和解码功能,因此,在较新的iOS环境中,你也可以考虑直接使用系统API。 总的来说,GTMBase64是iOS开发中一个实用的Base64工具,尤其对于旧版本iOS的...

    iOS常用加密方法(aes、md5、base64)

    在iOS中,可以使用内置的`NSData`类的`base64EncodedStringWithOptions:`方法进行Base64编码和解码。 在实际应用中,这三种技术常常结合使用。例如,可以先用AES对敏感数据进行加密,然后将加密后的密文通过Base64...

    base64--二进制流的还原

    2. **解码**:当你接收到一个Base64字符串并需要还原为原始二进制数据时,可以使用`Data`类的初始化方法`init(base64Encoded:)`来完成。这个方法会尝试将Base64字符串转换回原始的二进制数据流。 3. **错误处理**:...

    图片压缩、旋转、base64转换

    在前端,JavaScript的btoa()和atob()函数可以实现base64的编码和解码;后端,如Python的base64库、Java的Base64类提供了相应功能。在图片处理中,base64编码常用于将图片嵌入HTML中,避免HTTP请求,提高页面加载速度...

    Base64位编码

    但是,有时候我们可能需要更自定义的功能,比如在项目中添加特定的Base64工具类。在这种情况下,`GTMBase64`库就是一个很好的选择。 `GTMBase64`是Google Toolbox for Mac的一部分,它提供了Objective-C接口来进行...

    GTMBase64解码

    总的来说,GTMBase64为iOS开发者提供了一个简单、高效的Base64编码解码工具,能够轻松处理各种数据编码转换的需求,提升开发效率。在实际项目中,结合其他Google Toolbox for Mac的功能,可以使iOS应用的开发更加...

    GTMBase64文件下载

    这是因为Base64使用了64个不同的字符,每个字符代表6位二进制数,总共能表示2^6 = 64种可能的值。因此,每3个字节(24位)的数据可以被分成4组(每组6位),然后映射到Base64字符集中的一个字符。在编码过程中,如果...

    iphone des+base64加解密

    Base64的集成则相对简单,它通常提供`base64EncodedStringWithOptions:`和`initWithBase64EncodedString:options:`这样的方法,用于编码和解码字符串。在iOS中,这些方法可以分别在`NSData`和`NSString`类中找到。 ...

    GTMBase64资源文件下载

    在GTMBase64中,你可以找到用于处理Base64编码的类和方法,这些类和方法可以方便地将二进制数据转换为可打印的ASCII字符串,反之亦然。 Base64是一种常见的数据编码方式,尤其在HTTP协议中,用于在电子邮件或Web...

    GTMBase6

    GTMBase64是Google Toolbox for Mac (GTM)中的一个子模块,专门用于处理Base64编码和...总的来说,GTMBase64是iOS和macOS开发中处理Base64编码问题的一个强大工具,它的存在使得在项目中集成Base64功能变得轻而易举。

    java 加密和解密方法

    为了使这个工具类在Web前端、Android和iOS前端都能使用,开发者通常会创建一个RESTful API服务,该服务接受Base64编码的数据,然后进行解码处理。前端应用程序可以调用这些API进行加密和解密操作,而不直接在客户端...

    cordova-plugin-image-base64

    4. **Base64编码与解码**:在Java 8及以上版本,可以使用`java.util.Base64`工具类来进行Base64编码和解码。例如,`Base64.getEncoder().encodeToString(byte[])`用于编码,`Base64.getDecoder().decode(String)`...

Global site tag (gtag.js) - Google Analytics