日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

了解Base64编码解码

發(fā)布時間:2024/9/30 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 了解Base64编码解码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們經常說Base64,那Base64到底是什么呢?
Base64是一種基于64個可打印字符來表示二進制數據的表示方法,常用于在通常處理文本數據的場合,表示、傳輸、存儲一些二進制數據,會將不便于查看的二進制數據用Base64進行表示。所以Bsea64經常用于密碼學中,因為密碼學通常用二進制進行加密,加密的結果用Base64編碼來表示并傳輸。

我們想了解Base64,其實看下面的Base64索引表就可以了。

在Base64中的可打印字符包括字母A-Z、a-z、數字0-9共有62個字符,加上+、/共64個字符,實際上還有一個字符=來作為后綴。比如:編碼Man

當Base64對一個二進制數據進行編碼時,每6個位元為一個單元,對應某個可打印字符。3個字節(jié)有24個位元,對應于4個Base64單元,即3個字節(jié)可由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
  • 打印結果
----編碼:YWJj ####解碼:abc
  • 終端驗證
// 通過Base64將abc進行編碼 $ echo -n abc | base64 YWJj

驗證通過!!!但是通過Base64編碼,我們會發(fā)現編碼結果會變大1/3。
該文章為記錄本人的學習路程,希望能夠幫助大家,也歡迎大家點贊留言交流!!!https://www.jianshu.com/p/26f2ed1ed1f6

總結

以上是生活随笔為你收集整理的了解Base64编码解码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。