繁体   English   中英

创建像cryptoJS这样的C#256位AES加密

[英]create C# 256 bit AES encryption like cryptoJS

我试图在C#中加密有效负载。
我有Javascript中的代码,并且我试图在C#中创建相同的加密,但很难重新创建相同的加密。

指定的javascript代码(无法更改):

var data = 
    {
        'username':username,
        'password':password,
        'isPersistent':'false'
    };
var encrypted = CryptoJS.AES.encrypt(JSON.stringify(data),token,  { format: JsonFormatter });

    var body = {
        payload: JSON.parse(encrypted.toString()),
        token: token
    }
    debugger
    $.post(url, body).success(resultFunction)

我想在C#中创建相同的加密

Dictionary<string, string> data = new Dictionary<string, string>();
data.Add("username", username);
data.Add("password", password);
data.Add("isPersistent", "false");
string token = "7e4bac048ef766e83f0ec8c079e1f90c2eb690a9";
string serializedData = json_serialize(data);
string encrypted = EncryptText(serializedData, token);
Dictionary<string, string> body = new Dictionary<string, string>();
body.Add("payload", json_deserialize(encrypted));
body.Add("token", token);
var loginWebRequest = createWebRequest(address, "POST", json_serialize(body));   

我在这里有几个问题,在js中,您可以指定加密格式,然后使用JSON.parse。 似乎无法在C#中完成。
我使用了http://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt中的方法。
无论如何,我可以在C#中创建相同的代码段吗?

谢谢!

这篇文章的代码: 仅使用.NET类的openssl与CryptoJS AES兼容。

测试:

JS:

var encrypted = CryptoJS.AES.encrypt("abc12345","7e4bac048ef766e83f0ec8c079e1f90c2eb690a9");
encrypted.toString(); //output: "U2FsdGVkX18eGD2hSe9UyGgTk5NGKFmvWq/3c5IYHoQ="

C#:

 var p = new Protection();
 var s = p.OpenSSLDecrypt("U2FsdGVkX18eGD2hSe9UyGgTk5NGKFmvWq/3c5IYHoQ=", "7e4bac048ef766e83f0ec8c079e1f90c2eb690a9");
 Console.WriteLine(s);//output: "abc12345"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM