变更记录
序号 | 录入时间 | 录入人 | 备注 |
---|---|---|---|
1 | 2015-02-27 | Alfred Jiang | - |
2 | 2015-12-18 | Alfred Jiang | - |
方案名称
数据加密 - Base64 编码 ( NSData <=> NSString )
关键字
数据加密 \ 编码 \ 解码 \ Base64 \ NSData \ NSString \ NSData <=> NSString
需求场景
- 需要将 NSData 类型数据转为 NSString 类型数据时
- 对 NSString 或 NSData 有 Base64 编码需求时
参考链接
详细内容
iOS 实现 Base64 编码主要通过 Google Toolbox for Mac 中的 GTMBase64 相关文件实现。
- 下载 Google Toolbox for Mac 工程文件,将该工程中以下三个文件引入自己工程中 ```objective-c GTMDefines.h
GTMBase64.h
GTMBase64.m
2. 实现如下编码解码方法
.h文件
```objective-c
#pragma mark - base64
+ (NSString*)encodeBase64String:(NSString *)input;
+ (NSString*)decodeBase64String:(NSString *)input;
+ (NSString*)encodeBase64Data:(NSData *)data;
+ (NSString*)decodeBase64Data:(NSData *)data;
.m文件
#pragma mark - base64
+ (NSString*)encodeBase64String:(NSString * )input {
NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
data = [GTMBase64 encodeData:data];
NSString *base64String = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
return base64String;
}
+ (NSString*)decodeBase64String:(NSString * )input {
NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
data = [GTMBase64 decodeData:data];
NSString *base64String = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
return base64String;
}
+ (NSString*)encodeBase64Data:(NSData *)data {
data = [GTMBase64 encodeData:data];
NSString *base64String = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
return base64String;
}
+ (NSString*)decodeBase64Data:(NSData *)data {
data = [GTMBase64 decodeData:data];
NSString *base64String = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
return base64String;
}
效果图
(无)
备注
(无)