當我米嘗試使用下面的代碼,以數值1爲byte []轉換:如何解決「base64無效字符」錯誤?
string value1 = "4rdHFh%2BHYoS8oLdVvbUzEVqB8Lvm7kSPnuwF0AAABYQ%3D";
byte[] value2 = Convert.FromBase64String(value1);
Ι收到一個錯誤的字符串內容無效基64個字符...
有什麼不對?
謝謝!
當我米嘗試使用下面的代碼,以數值1爲byte []轉換:如何解決「base64無效字符」錯誤?
string value1 = "4rdHFh%2BHYoS8oLdVvbUzEVqB8Lvm7kSPnuwF0AAABYQ%3D";
byte[] value2 = Convert.FromBase64String(value1);
Ι收到一個錯誤的字符串內容無效基64個字符...
有什麼不對?
謝謝!
我認爲問題是與字符%
。它不是以base64串
允許根據MSDN
public static byte[] FromBase64String( string s)
S由的BASE64數字,空格字符,和尾隨 填充字符。從零開始 的升序的基數64位是大寫字符「A」到「Z」,小寫字母「a」到 「z」,數字「0」到「9」以及符號「+」和「/」。
s的由底座64個數字,空格字符,和尾隨 填充字符。 從零開始 的大寫字母'A'到'Z',小寫字母'a'到 'z',數字'0'到'9'以及符號'+'和'/'。
Value Char
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63/
退房的Base64編碼索引表字符串包含無效字符。在這種情況下,%
標誌。
如果您將unescape %2B
改爲「+」而%3D
改爲「=」,則字符串將被接受。
%2B是+符號URL編碼爲 %3D是符號URL編碼。
您的輸入字符串實際上是。
4rdHFh+HYoS8oLdVvbUzEVqB8Lvm7kSPnuwF0AAABYQ=
我有同樣的問題,但沒有一個答案幫助我!所以我在這裏問我的問題: How to encrypt strings that may have non-base 64 characters 和@luke-park解決我的問題。(所有學分都歸他所有)長篇故事短片是:
我們必須將我們的inputString
數據轉換爲字節數組,然後將其轉換爲bsae64
。現在,我們的數據是有效的base64
格式,可以對它進行加密:
byte[] data = Encoding.UTF8.GetBytes(inputString);
string b64 = Convert.ToBase64String(data);
我希望這種幫助別人的人有同樣的問題。
PS:在我的文章中有兩個加密類,非常適合用於加密/解密字符串。
您需要先將其從URL編碼轉換回來。 HttpUtility.UrlDecode()方法。 –