我知道什么是base64編碼以及如何base64在C#中計算編碼,但是我多次看到,當(dāng)我將字符串轉(zhuǎn)換為base64時,最后會有一個=。提出了一些問題:難道一個base64字符串總是以結(jié)束=?為什么=在末尾附加get?
3 回答

慕萊塢森
TA貢獻(xiàn)1810條經(jīng)驗 獲得超4個贊
它用作填充。
一個更完整的答案是,base64編碼的字符串并不總是以a =結(jié)尾,=如果需要將字符串填充到適當(dāng)?shù)拈L度,則只會以一或兩個結(jié)尾

烙印99
TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊
1-不
2-簡短的回答:第65個字符(“ =”符號)僅在消息編碼的最終過程中用作補充。
如果您的字符串具有3個字符的倍數(shù),則不會有'='符號,因為Base64
編碼使用每個三個字節(jié)(8位)并將它們表示為ASCII標(biāo)準(zhǔn)中的四個可打印字符。
細(xì)節(jié) :
(a)如果要編碼
ABCDEFG <=> [ ABC
] [ DEF
] [G
Base64
將處理(產(chǎn)生4個字符)第一個塊和第二個塊(因為它們完成了),但是對于第三個塊,它將==
在輸出中添加一個雙精度 字以完成所需的4個字符。因此,結(jié)果將是 QUJD REVG Rw == (無空格)
(b)如果您想編碼...
ABCDEFGH <=> [ ABC
] [ DEF
] [GH
同樣,它將=
在輸出的末尾僅添加一個以獲取4個字符,結(jié)果將為 QUJD REVG R0g = (無空格)
添加回答
舉報
0/150
提交
取消