zoukankan      html  css  js  c++  java
  • AES 加密,C#后台,javascript前台,crypt-js

    javascript前台代码

    <script src="http://apps.bdimg.com/libs/crypto-js/3.1.2/components/core-min.js"></script>
    <script src="http://apps.bdimg.com/libs/crypto-js/3.1.2/components/enc-utf16-min.js"></script>
    <script src="http://apps.bdimg.com/libs/crypto-js/3.1.2/components/sha1-min.js"></script>
    <script src="http://apps.bdimg.com/libs/crypto-js/3.1.2/components/md5-min.js"></script>
    <script src="http://apps.bdimg.com/libs/crypto-js/3.1.2/rollups/aes.js"></script>
    <script>
        function ajaxdecrypt() {
            var keystr = CryptoJS.enc.Utf16LE.parse($("#projectSign").val());
            var keymd5 = CryptoJS.MD5(keystr);
            var key = keymd5.toString(CryptoJS.enc.Hex);
    
            $.post("DecryptAes", { cipher: $("#txt").val(), key: key, iv: key }, function (result) {
                $("#txt").val(result);
            });
        }
    
        function encrypt() {
            var plantstr = $("#userSign").val();
            var plant = CryptoJS.enc.Utf16LE.parse(plantstr);
    
            var keystr = CryptoJS.enc.Utf16LE.parse($("#projectSign").val());
            var keymd5 = CryptoJS.MD5(keystr).toString(CryptoJS.enc.Hex);
            var key = CryptoJS.enc.Hex.parse(keymd5);
    
            //var encrypted = CryptoJS.AES.encrypt(plant, key, { iv: key, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding });
            var encrypted = CryptoJS.AES.encrypt(plant, key, { iv: key });
    
            $("#txt").val(encrypted);
        }
        function decrypt() {
            var cipherstr = $("#txt").val();
    
            var keystr = CryptoJS.enc.Utf16LE.parse($("#projectSign").val());
            var keycode = CryptoJS.MD5(keystr).toString(CryptoJS.enc.Hex);
            var key = CryptoJS.enc.Hex.parse(keycode);
    
            var plantstr = CryptoJS.AES.decrypt(cipherstr, key, { iv: key });
            var plant = CryptoJS.enc.Utf16LE.stringify(plantstr);
    
            $("#passwordSign").val(plant);
        }
    
    </script>

    C#后台

    public ActionResult DecryptAes(string cipher,string key,string iv)
            {
                AesManaged aes = new AesManaged();
    
                aes.Key = HexStringToBytes(key);
                aes.IV = HexStringToBytes(iv);
                //aes.Mode = CipherMode.CBC;
                //aes.Padding = PaddingMode.Zeros;
                ICryptoTransform de =  aes.CreateDecryptor();
    
                byte[] cipherBytes = Convert.FromBase64String(cipher);
    
                byte[] plantBytes =  de.TransformFinalBlock(cipherBytes,0,cipherBytes.Length);
    
                return Content(Encoding.Unicode.GetString(plantBytes));
            }
  • 相关阅读:
    数据库pubs
    当前目录中查找特定类型的文件
    DBHelper,ADO直接操作数据库,扩展DataTable操作数据裤的方法
    行记录次序+等差数列
    面试的通用要求
    zoj_3367Connect them
    hdoj_4198Quick out of the Harbour
    Win32常见异常
    hdoj_1026Ignatius and the Princess I
    移动 II
  • 原文地址:https://www.cnblogs.com/bushuosx/p/3931698.html
Copyright © 2011-2022 走看看