因此,例如我有一個base64編碼的字符串,並希望解碼它。字符串的長度是29個字符,所以顯然要解碼它,我必須使用32個字符。爲什麼Convert.FromBase64()只允許2個填充字符? (C#)
Convert.FromBase64()
只允許最多2個填充字符。是否根本沒有我需要3個填充字符的情況,因爲base64編碼?
因此,例如我有一個base64編碼的字符串,並希望解碼它。字符串的長度是29個字符,所以顯然要解碼它,我必須使用32個字符。爲什麼Convert.FromBase64()只允許2個填充字符? (C#)
Convert.FromBase64()
只允許最多2個填充字符。是否根本沒有我需要3個填充字符的情況,因爲base64編碼?
請參考base64的定義。它允許通過設計多達2個填充字符。在這裏看到的描述:https://en.wikipedia.org/wiki/Base64#Padding
字符串的長度是29個字符
它爲[],在BASE64編碼,並且產生的29個字符的串的字節是不可能的,而不管填充。一個base64字符產生6位。一個字節[21]有21 x 8 = 168位=> 168/6 = 28.0 base64字符,非常適合。一個字節[22]有22 x 8 = 176位=> 176/6 = 29.33個字符,最多可達30個字符。沒有可能的字節[]可以產生29個字符。
所以Convert.FromBase64()正確地告訴你,數據是垃圾。