gpt4 book ai didi

javascript - 创建 C# 256 位 AES 加密,如 cryptoJS

转载 作者:行者123 更新时间:2023-12-02 16:49:18 26 4
gpt4 key购买 nike

我正在尝试在 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# 中创建相同的代码片段吗?

谢谢!

最佳答案

这篇文章中的代码:openssl using only .NET classes与 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"

关于javascript - 创建 C# 256 位 AES 加密,如 cryptoJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26819245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com