为了避免明码传递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
分享到:
相关推荐
在iOS平台上,Base64编解码可以通过使用Foundation框架中的`NSData`类实现。`NSData`提供了`dataWithBase64EncodedString:`和`base64EncodedStringWithOptions:`两个方法。下面展示了如何在Swift中使用这两个方法: ...
在Jodd库中,Base64工具类通常位于`org.jodd.io`或`org.jodd.util`等包下,这些工具类可以帮助开发者方便地处理Base64编码和解码任务,比如将图片、文本或者其他二进制数据转换成Base64字符串,或者将Base64字符串...
在iOS和OSX平台上,开发人员经常使用Base64来处理加密和解密操作,特别是在网络通信、存储敏感信息或者在不同格式之间转换数据时。 Base64的基本原理是将每3个字节的数据(24位)转化为4个6位的字符(总计26^6=64个...
在iOS中,Apple提供了内置的Foundation框架,其中`NSData`类有一个`base64EncodedStringWithOptions:`方法可以用于Base64编码,而`initWithBase64EncodedString:options:`则用于解码。这些方法可以方便地处理Base64...
在iOS开发中,GTMBase64是一个常用的库,它提供了对Base64编码和解码的支持。...总的来说,GTMBase64是iOS开发中一个实用的工具,它为开发者提供了简单且高效的Base64编码和解码功能,使得处理二进制数据变得更加方便。
然而,iOS 7及更高版本已经内置了`NSData`的分类,提供Base64编码和解码功能,因此,在较新的iOS环境中,你也可以考虑直接使用系统API。 总的来说,GTMBase64是iOS开发中一个实用的Base64工具,尤其对于旧版本iOS的...
在iOS中,可以使用内置的`NSData`类的`base64EncodedStringWithOptions:`方法进行Base64编码和解码。 在实际应用中,这三种技术常常结合使用。例如,可以先用AES对敏感数据进行加密,然后将加密后的密文通过Base64...
2. **解码**:当你接收到一个Base64字符串并需要还原为原始二进制数据时,可以使用`Data`类的初始化方法`init(base64Encoded:)`来完成。这个方法会尝试将Base64字符串转换回原始的二进制数据流。 3. **错误处理**:...
在前端,JavaScript的btoa()和atob()函数可以实现base64的编码和解码;后端,如Python的base64库、Java的Base64类提供了相应功能。在图片处理中,base64编码常用于将图片嵌入HTML中,避免HTTP请求,提高页面加载速度...
但是,有时候我们可能需要更自定义的功能,比如在项目中添加特定的Base64工具类。在这种情况下,`GTMBase64`库就是一个很好的选择。 `GTMBase64`是Google Toolbox for Mac的一部分,它提供了Objective-C接口来进行...
总的来说,GTMBase64为iOS开发者提供了一个简单、高效的Base64编码解码工具,能够轻松处理各种数据编码转换的需求,提升开发效率。在实际项目中,结合其他Google Toolbox for Mac的功能,可以使iOS应用的开发更加...
这是因为Base64使用了64个不同的字符,每个字符代表6位二进制数,总共能表示2^6 = 64种可能的值。因此,每3个字节(24位)的数据可以被分成4组(每组6位),然后映射到Base64字符集中的一个字符。在编码过程中,如果...
Base64的集成则相对简单,它通常提供`base64EncodedStringWithOptions:`和`initWithBase64EncodedString:options:`这样的方法,用于编码和解码字符串。在iOS中,这些方法可以分别在`NSData`和`NSString`类中找到。 ...
在GTMBase64中,你可以找到用于处理Base64编码的类和方法,这些类和方法可以方便地将二进制数据转换为可打印的ASCII字符串,反之亦然。 Base64是一种常见的数据编码方式,尤其在HTTP协议中,用于在电子邮件或Web...
GTMBase64是Google Toolbox for Mac (GTM)中的一个子模块,专门用于处理Base64编码和...总的来说,GTMBase64是iOS和macOS开发中处理Base64编码问题的一个强大工具,它的存在使得在项目中集成Base64功能变得轻而易举。
为了使这个工具类在Web前端、Android和iOS前端都能使用,开发者通常会创建一个RESTful API服务,该服务接受Base64编码的数据,然后进行解码处理。前端应用程序可以调用这些API进行加密和解密操作,而不直接在客户端...
4. **Base64编码与解码**:在Java 8及以上版本,可以使用`java.util.Base64`工具类来进行Base64编码和解码。例如,`Base64.getEncoder().encodeToString(byte[])`用于编码,`Base64.getDecoder().decode(String)`...