变更记录

序号 录入时间 录入人 备注
1 2015-02-27 Alfred Jiang -
2 2015-12-18 Alfred Jiang -

方案名称

数据加密 - Base64 编码 ( NSData <=> NSString )

关键字

数据加密 \ 编码 \ 解码 \ Base64 \ NSData \ NSString \ NSData <=> NSString

需求场景

  1. 需要将 NSData 类型数据转为 NSString 类型数据时
  2. 对 NSString 或 NSData 有 Base64 编码需求时

参考链接

  1. GitHub - google-toolbox-for-mac
  2. CSDN - Base64编码介绍

详细内容

iOS 实现 Base64 编码主要通过 Google Toolbox for Mac 中的 GTMBase64 相关文件实现。

  1. 下载 Google Toolbox for Mac 工程文件,将该工程中以下三个文件引入自己工程中

    1
    2
    3
    4
    5
    GTMDefines.h

    GTMBase64.h

    GTMBase64.m
  2. 实现如下编码解码方法

.h文件

1
2
3
4
5
#pragma mark - base64
+ (NSString*)encodeBase64String:(NSString *)input;
+ (NSString*)decodeBase64String:(NSString *)input;
+ (NSString*)encodeBase64Data:(NSData *)data;
+ (NSString*)decodeBase64Data:(NSData *)data;

.m文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#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;
}

效果图

(无)

备注

(无)