AES算法加密(crypto-js)
1、引入
Node.js
安装依赖:
npm install crypto-js
npm install js-md5
js引入:
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js" integrity="sha512-nOQuvD9nKirvxDdvQ9OMqe2dgapbPB7vYAMrzJihw5m+aNcf0dX53m6YxM4LgA9u8e9eg9QX+/+mPu8kCNpV2A==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/aes.min.js" integrity="sha512-eqbQu9UN8zs1GXYopZmnTFFtJxpZ03FHaBMoU3dwoKirgGRss9diYqVpecUgtqW2YRFkIVgkycGQV852cD46+w==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/pad-zeropadding.min.js" integrity="sha512-txZjFJoDvbM8FJj9HuAHasxA/M76UjnMCXLHwuciIGDKUW9EB9PJVA6foG0vymuK9hu2gdpL60imO9VrTlEF7w==" crossorigin="anonymous"></script>
<script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.js"></script>
2、使用示例:
var CryptoJS =
function checkForm(){
var timestamp=new Date().getTime().toString();
var iv = makeIV(16);
var userCode = '31580012';
var md5Check=md5(userCode+timestamp);
// aes 加密
var str=''+userCode+','+timestamp
var encryptText = encrypt(str,key);
console.log("加密后:"+encryptText)
// if(encryptText.length == 24){
console.log(encryptText + "解密后:" + decrypt(encryptText,key,iv))
// }
}
checkForm();
//加密字符串长度
function makeIV(length) {
var result = '';
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var charactersLength = characters.length;
for ( var i = 0; i < length; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
// 加密
function encrypt(data,key,iv) { //key,iv:16位的字符串
var key1 =CryptoJS.enc.Utf8.parse(key);
var encryptedStr = CryptoJS.AES.encrypt(data, key1,{
mode : CryptoJS.mode.ECB,
padding : CryptoJS.pad.Pkcs7
}).ciphertext.toString();
var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedStr);
var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
return encryptedBase64Str
}
// 解密
function decrypt(data,key,iv){ //key,iv:16位的字符串
var key1 =CryptoJS.enc.Utf8.parse(key);
var decrypted=CryptoJS.AES.decrypt(data,key1,{
mode : CryptoJS.mode.ECB,
padding : CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}

浙公网安备 33010602011771号