漢字轉base64的過程


在UTF8編碼中一個字符占用一個字節 一個漢字占用3個字節。

11111111 11111111 11111111

Base64編碼要求把3個8位字節(3*8=24)轉化為4個6位的字節(4*6=24),之后在6位的前面補兩個0,形成8位一個字節的形式。 如果剩下的字符不足3個字節,則用0填充,輸出字符使用'=',因此編碼后輸出的文本末尾可能會出現1或2個'='。

為了保證所輸出的編碼位可讀字符,Base64制定了一個編碼表,以便進行統一轉換。編碼表的大小為2^6=64,這也是Base64名稱的由來。

image.png

通過本工具可以對代碼進行Base64加密或者解密。Base64是網絡上最常見的用於傳輸8Bit字節代碼的編碼方式之一。

把一個漢字轉化成base64編碼的過程:
1.把漢字轉化成16進制
2.把16進制轉化成2進制
3.把38=24位的二進制變成 46的二進制
4.把2進制轉化成10進制
5.根據Base64編碼表轉化成base64編碼

let buffer = Buffer.from('馮'); //將字符串轉化成16進制 console.log(buffer); //e5 86 af // 把16進制轉化成2進制 console.log((0xe5).toString(2)); console.log((0x86).toString(2)); console.log((0xaf).toString(2)); // 11100101 10000110 10101111 這個是3*8的模式 我們把這個模式轉化成4*6的模式 // 111001 011000 011010 101111 4*6模式 且最大不會超過64 // 把二進制變成10進制 console.log(parseInt('111001', 2)); console.log(parseInt('011000', 2)); console.log(parseInt('011010', 2)); console.log(parseInt('101111', 2)); // 57 24 26 47 // Base64編碼表 let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; str += str.toLowerCase(); str += '0123456789'; str += '+/'; console.log(str[57]+str[24]+str[26]+str[47]); //5Yav /** * 5Yav就是漢字馮的base64編碼,不具有加密性,但是我們可以看到原來的漢字是3字節現在5Yav變成了4個字節 所以base64適合小圖標轉碼 */

總結:
1.base64 沒有加密功能,它只是編碼轉化base64 。
2.base64適合小圖標轉碼

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM