2017-05-25 11 views
0

の復号に、私は以下のようにC#でいくつかのテキストを暗号化していますエンコーディングC#とJavaスクリプト

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

を暗号化された文字列は次のとおりです。IgBTAGEAbQBwAGwAZQAgAHQAZQB4AHQAIgA=

私はJavaスクリプトで暗号化された文字列を復号化します。結果が何か違う

enter image description here

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

の下

私が試してみました、それぞれの文字の一部のスペースがあります。私はスペースを置き換えることさえできません。

+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エンコーディングを使用する必要があります。このコマンドでエクスポートbase64で

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

ありがとうございます、その作業 –

0

@King_Fisher、あなたは交換する方法は、単一の発生を置き換えますまた、追加のスペースを取得するべきではありません。ここで

enter image description here

関連する問題