• 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));
            }
  • 相关阅读:
    设计模式之访问者模式
    设计模式之命令模式
    设计模式之迭代器模式
    tomcat8.0.11性能优化
    java 基础 --集合--012
    StringBuffer和StringBuilder的区别
    jquery 入门
    java 基础 --匿名内部类-008
    java 基础 --多态--009
    java 基础--继承--007
  • 原文地址:https://www.cnblogs.com/bushuosx/p/3931698.html
Copyright © 2020-2023  润新知