2014-02-28 50 views
1
var result=CryptoJS.AES.decrypt(data,name).toString(CryptoJS.enc.Utf8); 

我嘗試使用cryptojs解密json數據。我想在c#中使用這段代碼。爲此需要哪個庫/庫?它給出錯誤CryptoJs does not exist in current context哪個庫用於cryptojs

我使用這一個

公共靜態無效的主要(字符串[]參數) {

 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(); 




    } 

回答

1

CryptoJS是JavaScript庫,並且不能在C#項目中使用。要在C#中執行AES解密,您需要使用此答案中包含的.Net加密庫:Using AES encryption in C#

在上面鏈接答案你會看到,解密串行:

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

該第二參數是在這裏可以通過鍵(I假設PKI是您用來加密字符串字節數組鍵) 。第三個參數是您在加密字符串時應確保與CryptoJS同步的算法類型。

+0

我有字符串中的數據,並有加密數據,並希望解密它,我使用pki值解密它 – user3363463

+0

好的..更新了答案。 – ShitalShah