1
var result=CryptoJS.AES.decrypt(data,name).toString(CryptoJS.enc.Utf8);

我尝试使用 cryptojs. 我想在 c# 中使用此代码。为此需要/需要哪些图书馆/图书馆?它给出了错误CryptoJs does not exist in current context

我用这个

公共静态无效主要(字符串[]参数){

        Class1 class1obj = new Class1();
        string baseUrl = "http://www.whatsonindia.com";
        WebRequest request = HttpWebRequest.Create(baseUrl);
        WebResponse response = request.GetResponse();
        string cookiesVals = response.Headers[HttpResponseHeader.SetCookie];

        string url = "http://www.whatsonindia.com/appi/user?channelgenre=all&context=applicationname%3Dsourcebits%3Bheadendid%3D0&dateselected=0&mode=getTVGuideInfo&pageno=1&responseformat=json&responselanguage=English&starthour=0&totalhrdata=24&userid=-1";
        WebClient client = new WebClient();
        client.Headers.Add(HttpRequestHeader.Cookie, cookiesVals);
        var data = client.DownloadString(url);
        Console.WriteLine(data);
        Console.WriteLine("dynamic object....");
        Console.ReadLine();
         JavaScriptSerializer serializer = new JavaScriptSerializer();
         dynamic item = serializer.Deserialize<object>(data);
         string name = item["pki"];
        //JavaScriptSerializer serializer1 = new JavaScriptSerializer();

        var result=CryptoJS.AES.decrypt(data,name).toString(CryptoJS.enc.Utf8);

        var obj = (JObject)JsonConvert.DeserializeObject(data);
       // var dict = obj.First.First.Children().Cast<JProperty>().ToDictionary();
        var dt = (string)obj["data"];
        Console.WriteLine(dt);
                 Console.ReadLine();




    }
4

1 回答 1

1

CryptoJS 是 JavaScript 库,不能在 C# 项目中使用。要在 C# 中进行 AES 解密,您需要使用此答案中涵盖的 .Net 加密库:在 C# 中使用 AES 加密

在上面链接的答案中,您将看到解密字符串的行:

string decrypted = DecryptStringFromBytes(encrypted, myRijndael.Key, myRijndael.IV);

第二个参数是您可以传递密钥的位置(我假设 pki 是用于加密字符串的字节数组密钥)。第三个参数是加密字符串时应确保与 CryptoJS 同步的算法类型。

于 2014-02-28T07:20:31.000 回答