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

を使用してjsonデータを復号化しようとして cryptojsいます。このコードを c# で使用したい。これにはどのライブラリが必要ですか?エラーが発生しますCryptoJs does not exist in current context

私はこれを使います

public static void Main(string[] args) {

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

2 番目のパラメーターは、キーを渡すことができる場所です (pki は、文字列の暗号化に使用したバイト配列キーであると想定しています)。3 番目のパラメーターは、文字列を暗号化したときに CryptoJS と同期していることを確認する必要があるアルゴリズムのタイプです。

于 2014-02-28T07:20:31.000 に答える