2017-05-25 68 views
0

C#和解碼我已加密在C#中一些文字象下面這樣:編碼在Javascript中

var encriptedCredential = Convert.ToBase64String(Encoding.Unicode.GetBytes(JsonConvert.SerializeObject("Sample text"))); 

加密的字符串是:IgBTAGEAbQBwAGwAZQAgAHQAZQB4AHQAIgA=

我想解密Java腳本加密的字符串。

我曾嘗試以下

decodeURIComponent(atob("IgBTAGEAbQBwAGwAZQAgAHQAZQB4AHQAIgA=")) 
decodeURIComponent(atob("IgBTAGEAbQBwAGwAZQAgAHQAZQB4AHQAIgA=").replace(' ','')) 

enter image description here

的結果是不同的東西,有在每個字母一些空間。我甚至不能更換空間。

+11

只是要清楚:base64編碼/解碼不加密 - 沒有介入的關鍵,所以任何人都可以「解密」這些數據。 – vcsjones

+0

[使用JavaScript的atob解碼base64不能正確解碼utf-8字符串](https://stackoverflow.com/questions/30106476/using-javascripts-atob-to-decode-base64-doesnt-properly- decode-utf-8-strings) –

+1

這是因爲你編碼了一個Unicode字符串。嘗試將其編碼爲ASCII字符串(或UTF-8)。 –

回答

2

您需要在C#中使用UTF-8編碼。通過這個命令

Convert.ToBase64String(Encoding.UTF8.GetBytes("Sample text")) 
+0

謝謝,它的工作 –

0

@King_Fisher出口的base64,你不應該得到額外的空間,也替換法將取代單一的發生。

這是我做了與你的代碼(見附件截圖)enter image description here