[英]is it possible to convert from byte[] to base64string and back
我試過這個:
Console.WriteLine(Convert.ToBase64String(Encoding.UTF8.GetBytes("hi")));
Console.WriteLine(Convert.ToBase64String(Encoding.UTF8.GetBytes(Convert.ToBase64String(Encoding.UTF8.GetBytes("hi")))));
我得到了不同的結果,雖然我認為它應該是一樣的
在第二行中,您沒有將轉換反轉為Base64,只需重新應用它。
你想使用Convert.FromBase64String並說:
Console.WriteLine(
Convert.ToBase64String(
Convert.FromBase64String(
Convert.ToBase64String(Encoding.UTF8.GetBytes("hi")))));
錯誤的問題!
您正嘗試兩次轉換為base64。 您需要使用base64轉換。
在您的帖子中,您將轉換為Base64String,然后將其編碼為另一個Base64String。 這肯定不會給你一個結果,因為你想編碼到Base64String,然后解碼回原始值。
您的代碼必須看起來像這樣編碼/解碼:
string toEncode = "hi";
// Convert to base64string
byte[] toBytes = Encoding.UTF8.GetBytes(toEncode);
string base64 = Convert.ToBase64String(toBytes);
// Convert back from the base64string
byte[] fromBase64 = Convert.FromBase64String(base64);
string result = Encoding.UTF8.GetString(fromBase64);
順序1:
一種。 將“hi”轉換為UTF
灣 將UTF轉換為base 64
順序2:
一種。 將“hi”轉換為UTF v1
灣 將UTF v1轉換為base 64 v1
C。 將base 64 v1轉換為UTF v2
d。 將UTF v2轉換為base 64 v2
像這樣分解,應該清楚為什么你不希望這些產生相同的輸出。 通過超長函數鏈進行混淆。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.