日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【转】BASE64编码规则

發布時間:2023/12/10 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】BASE64编码规则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Base64編碼要求把3個8位字節(3*8=24)轉化為4個6位的字節(4*6=24),之后在6位的前面補兩個0,形成8位一個字節的形式。(將字符串轉換為二進制,從前往后,每6位一取,作為新的字節)?
例如字符串“張3”?:
11010101?11000101?00110011?
轉換后:
00110101?00011100?00010100?00110011?
用十進制表示即為:53?34?20?51?
這個并不是最終的結果,還需要根據Base64的編碼表查詢出轉換后的值。下面就是BASE64編碼表:
Table?1:?The?Base64?Alphabet?
Value?Encoding?Value?Encoding?Value?Encoding?Value?Encoding?
0?A? ? ?17?R?34?i?51?z?
1?B? ? ?18?S?35?j?52?0?
2?C? ? ?19?T?36?k?53?1?
3?D? ? ?20?U?37?l?54?2?
4?E? ? ?21?V?38?m?55?3?
5?F? ? ?22?W?39?n?56?4?
6?G? ? ?23?X?40?o?57?5?
7?H? ? ?24?Y?41?p?58?6?
8?I? ? ? 25?Z?42?q?59?7?
9?J? ? ?26?a?43?r?60?8?
10?K? 27?b?44?s?61?9?
11?L? 28?c?45?t?62?+?
12?M?29?d?46?u?63?/?
13?N?30?e?47?v?(pad)?=?
14?O?31?f?48?w?
15?P?32?g?49?x?
16?Q?33?h?50?y?

以上一共是64個編碼,這也是Base64名稱的由來(基于長度為64的編碼表),編碼的編號對應的是得出的新字節的十進制值。因此,上例中字符串“張3”經過編碼后就成了字符串“1iUz”了。?

當待編碼的字節數量不是3的整數倍時,字節數/3的余數自然就是2或者1。轉換的時候,每6位一取,剩下的不夠6位的在前面用0來補,之后再在每個6位的前面補兩個0形成一個8位的字節。轉換完不足4個字節的用“=”來補足(即:Base64的最終編碼長度一定是4的整數倍)。譬如結果若最后余下的為2個字節的“張”:?
字符串“張”?
11010101?HEX:D5?11000101?HEX:C5?

00110101?00011100?00010100?
十進制53?十進制34?十進制20?pad?
字符’1’?字符’i’?字符’U’?字符’=’?

這樣,最后的2個字節被整理成了“1iU=”。?
同理,若原代碼只剩下一個字節,那么將會添加兩個“=”。只有這兩種情況,所以,Base64的編碼最多會在編碼結尾有兩個“=”?

總結

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

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