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

浙公网安备 33010602011771号