![](/img/trans.png)
[英]How to decode a string encoded by C# Convert.ToBase64String in python 3
[英]C#:Convert.ToBase64String problem
我是C#開發新手,下面的代碼是Convert.ToBase64String的問題,不知道怎么解決。
byte[] str1Byte = System.Text.Encoding.UTF8.GetBytes("xyz123");
String plaintext = Convert.ToBase64String(str1Byte);
byte[] plaintext_bytes = System.Text.Encoding.UTF8.GetBytes(plaintext);
Console.WriteLine("base64 plaintext: " + plaintext);
Console.WriteLine("plaintext_bytes to String: " +
System.Text.Encoding.UTF8.GetString(plaintext_bytes));
Console.WriteLine("ToBase64String(plaintext_bytes) : " +
Convert.ToBase64String(plaintext_bytes));
結果:
base64 plaintext: eHl6MTIz
plaintext_bytes to String: eHl6MTIz
ToBase64String(plaintext_bytes) : ZUhsNk1USXo=
我希望“ Convert.ToBase64String(plaintext_bytes))
”的 output 是“ eHl6MTIz
”,而不是“ ZUhsNk1USXo=
”。
您正在嘗試對 Base64 編碼的東西已經 Base64 編碼:
// plaintext_bytes = eHl6MTIz
Console.WriteLine("ToBase64String(plaintext_bytes) : " + Convert.ToBase64String(plaintext_bytes));
如前所述,您需要 go FROM base 64
它不應該請看這篇文章Base64
Base64 不是字符串的 Ascii 表示
您在這里混淆了:您使用的 Console.WriteLine 將打印一些字節,而不是字節的 Base64 表示。 Base64 是一種轉換算法,見上面的鏈接。 是的,使用 FromBase64String
不就是您將其編碼兩次的情況嗎?
byte[] str1Byte = System.Text.Encoding.UTF8.GetBytes("xyz123");
然后
byte[] plaintext_bytes = System.Text.Encoding.UTF8.GetBytes(plaintext);
(我有點慢,Chris S 說得更簡單)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.