OC学习60:GTMBase64编解码

张建 lol

前言

Base64 不是加密解密算法,只能算是一种 编码算法GTMBase64 是对 Base64 的封装。

什么是 Base64?

Base64 编码方法要求把每3个8Bit字节转换成4个6Bit字节,空余的那两个bit用0补位,如下:

原始数据: aaaaaaabb bbbbcccc ccdddddd (每个字母表示一个bit位)
编码后数据 00aaaaaa 00bbbbbb 00cccccc 00dddddd

Base64 有什么作用?

由于某系系统只能使用 ASCII 字符,Base64可以将非 ASCII 字符转换成 ASCII 字符

Base64 特点?

  • 速度快

  • 能将字符串A转换成字符串B

GTMBase64 使用

  1. 安装
1
pod 'GTMBase64', '~> 1.0.1'
  1. 方法介绍
  • 将输入的data进行Base64编码,并返回解码后的字符串
1
2
3
4
5
6
7
8
/**
* 将输入的data进行Base64编码,并返回解码后的字符串
*
* @param 输入的data
*
* @return 返回解码后的字符串
*/
+ (NSString*)encodeBase64Data:(NSData *)data;
  • 将输入的data进行Base64解码,并返回解码后的字符串
1
2
3
4
5
6
7
8
/**
* 将输入的data进行Base64解码,并返回解码后的字符串
*
* @param data 输入的data
*
* @return 返回解码后的字符串
*/
+ (NSString*)decodeBase64Data:(NSData *)data;
  1. 使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 要编码的字符串
NSString * str = @"需要编码的字符串";

// base64编码
NSData * data_str = [str dataUsingEncoding:NSUTF8StringEncoding];
NSData * base64_encode_data = [GTMBase64 encodeData:data_str];
NSString * base64_encode_str = [[NSString alloc] initWithData:base64_encode_data encoding:NSUTF8StringEncoding];
NSLog(@"base64编码:%@",base64_encode_str);

// base64解码
NSData * base64_decode_data = [GTMBase64 decodeString:base64_encode_str];
NSString * base64_decode_str = [[NSString alloc] initWithData:base64_decode_data encoding:NSUTF8StringEncoding];
NSLog(@"base64解码:%@",base64_decode_str);

查看打印结果:

1
2
2023-06-15 18:17:28.201097+0800 GTMBase64-Demo[17132:1194983] base64编码:6ZyA6KaB57yW56CB55qE5a2X56ym5Liy
2023-06-15 18:17:28.201181+0800 GTMBase64-Demo[17132:1194983] base64解码:需要编码的字符串
  • Post title:OC学习60:GTMBase64编解码
  • Post author:张建
  • Create time:2023-06-15 13:55:56
  • Post link:https://redefine.ohevan.com/2023/06/15/OC/OC学习60:GTMBase64编解码/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.