0
私はCryptoJSで同じ結果を得ていません。何が間違っているか確認してください。ここでJS(CryptoJS)のC#での暗号化の暗号化
は私の予想される入力/出力である:ここで
Encrypted String: 723024D59CF7801A295F81B9D5BB616E
Decrypted String: stackoverflow
は、C#での私の復号/暗号化方式です。暗号化はTripleDESモードですCBC、私はCryptoJSコードで同じキーとivを使用しています。ここで
public static string Encrypt(string data, string key, string iv)
{
byte[] bdata = Encoding.ASCII.GetBytes(data);
byte[] bkey = HexToBytes(key);
byte[] biv = HexToBytes(iv);
var stream = new MemoryStream();
var encStream = new CryptoStream(stream,
des3.CreateEncryptor(bkey, biv), CryptoStreamMode.Write);
encStream.Write(bdata, 0, bdata.Length);
encStream.FlushFinalBlock();
encStream.Close();
return BytesToHex(stream.ToArray());
}
public static string Decrypt(string data, string key, string iv)
{
byte[] bdata = HexToBytes(data);
byte[] bkey = HexToBytes(key);
byte[] biv = HexToBytes(iv);
var stream = new MemoryStream();
var encStream = new CryptoStream(stream,
des3.CreateDecryptor(bkey, biv), CryptoStreamMode.Write);
encStream.Write(bdata, 0, bdata.Length);
encStream.FlushFinalBlock();
encStream.Close();
return Encoding.ASCII.GetString(stream.ToArray());
}
は私がCryptoJS
var key = "90033E3984CEF5A659C44BBB47299B4208374FB5DC495C96";
var iv = "E6B9AFA7A282A0CA";
key = CryptoJS.enc.Hex.parse(key);
iv = CryptoJS.enc.Hex.parse(iv);
// Input is a Hex String
var decrypted = CryptoJS.TripleDES.decrypt('723024D59CF7801A295F81B9D5BB616E', key, { iv : iv, mode:CryptoJS.mode.CBC});
console.log(decrypted.toString());
こんにちは、あなたは私にHexToBytes機能を与えることができます:あなたは、あなたがテキストを取得する必要があることがわかっている場合は、次のような適切なエンコーディングを使用することができます。またdes3オブジェクトは何ですか?これらの機能をスタンドアロン形式で利用できますか?私は同じことをしなければならないが、私は暗号化部分のために新しい。 – Sagar