了解Base64编码解码
我們經常說Base64,那Base64到底是什么呢?
Base64是一種基于64個可打印字符來表示二進制數據的表示方法,常用于在通常處理文本數據的場合,表示、傳輸、存儲一些二進制數據,會將不便于查看的二進制數據用Base64進行表示。所以Bsea64經常用于密碼學中,因為密碼學通常用二進制進行加密,加密的結果用Base64編碼來表示并傳輸。
我們想了解Base64,其實看下面的Base64索引表就可以了。
在Base64中的可打印字符包括字母A-Z、a-z、數字0-9共有62個字符,加上+、/共64個字符,實際上還有一個字符=來作為后綴。比如:編碼Man
當Base64對一個二進制數據進行編碼時,每6個位元為一個單元,對應某個可打印字符。3個字節有24個位元,對應于4個Base64單元,即3個字節可由4個可打印字符來表示,所以最少要24個比特位。如果不足24位,就在后面補0,后面補的0就會用=來表示,所以=也只會在最后面。
終端演示Base64編碼
// 通過Base64將111圖片進行編碼,生成111.txt文件 $ base64 111.png -o 111.txt // 對111.txt文件解碼,生成222.png $ base64 111.txt -o 222.png -D左側的圖片是原始文件,通過Base64編碼后輸出右側111.txt文件,再對111.txt文件解碼還原。
代碼演示Base64編碼
Base64也是在iOS7以后出現的,接下來用代碼簡單操作一下
// // ViewController.m // Base64 // // Created by Vincent on 2019/1/14. // Copyright ? 2019 Vincent. All rights reserved. //#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib. }- (NSString *)getBase64Encode:(NSString *)encodeStr {// 將傳進來的string轉成NSData,再進行Base64編碼NSData *data = [encodeStr dataUsingEncoding:NSUTF8StringEncoding];return [data base64EncodedStringWithOptions:0]; }- (NSString *)getBase64Decode:(NSString *)decodeStr {// 由于傳過來的是Base64編碼字符串,則不需要先轉二進制再解碼,可以直接通過NSData初始化方法解碼NSData *data = [[NSData alloc] initWithBase64EncodedString:decodeStr options:0];// 將data轉成stringreturn [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];}- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {NSLog(@"----編碼:%@", [self getBase64Encode:@"abc"]);NSLog(@"####解碼:%@", [self getBase64Decode:[self getBase64Encode:@"abc"]]); }@end- 打印結果
- 終端驗證
驗證通過!!!但是通過Base64編碼,我們會發現編碼結果會變大1/3。
該文章為記錄本人的學習路程,希望能夠幫助大家,也歡迎大家點贊留言交流!!!https://www.jianshu.com/p/26f2ed1ed1f6
總結
以上是生活随笔為你收集整理的了解Base64编码解码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改系统UIAlertAction的按钮
- 下一篇: 本地进行证书签名