CryptoJS(crypto.js)为JavaScript提供了各种各样的加密算法。目前已支持的算法包括: MD5SHA-1SHA-256AESRabbitMARC4HMACHMAC-MD5HMAC-SHA
具体下载地址:点击下载
主要是两个文件夹,components和rollups
第一个是组件,第二个是汇总。
在汇总文件夹中的文件是在组件一个或多个文件夹拼接后压缩的。
这使得汇总独立的文件夹在你的项目纳入项目文件,而无需担心它的依赖。
CryptoJSvar md5 = CryptoJS.MD5("Message").toString(CryptoJS.enc.Hex);
console.log("md5 = %s", md5);
var sHA1 = CryptoJS.SHA1("Message").toString(CryptoJS.enc.Hex);
console.log("sHA1 = %s", sHA1);
var sHA256 = CryptoJS.SHA256("Message").toString(CryptoJS.enc.Hex);
console.log("sHA256 = %s", sHA256);
var hmacMD5 = CryptoJS.HmacMD5("Message", "Secret Passphrase").toString(CryptoJS.enc.Hex);
console.log("hmacMD5 = %s", hmacMD5);
var hmacSHA1 = CryptoJS.HmacSHA1("Message", "Secret Passphrase").toString(CryptoJS.enc.Hex);
console.log("hmacSHA1 = %s", hmacSHA1);
var aesEncrypt = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
console.log("aesEncrypt = %s", aesEncrypt.iv.toString(CryptoJS.enc.Hex));
var aesDecrypt = CryptoJS.AES.decrypt(aesEncrypt, "Secret Passphrase");
console.log("aesDecrypt = %s", aesDecrypt.toString(CryptoJS.enc.Utf8));
// base64 encrypt
var rawStr = "hello world!";
var wordArray = CryptoJS.enc.Utf8.parse(rawStr);
var base64 = CryptoJS.enc.Base64.stringify(wordArray);
console.log('base64Encrypt = ', base64);
// base64 decrypt
var parsedWordArray = CryptoJS.enc.Base64.parse(base64);
var parsedStr = parsedWordArray.toString(CryptoJS.enc.Utf8);
console.log('base64Decrypt = ',parsedStr);
前端使用CryptoJS类库,进行AES加密提交到后台之后,后台解密失败,报错Given final block not properly padded经过一番搜索,终于有了解决方案!
由于后台java使用AES加密使用的是AES/EBC/PKCS5Padding进行初始化的,1、首先var key = CryptoJS.enc.Utf8.parse(key);
2、由于后端用的PKCS5Padding,而CryptoJS类库类库中没有,但有PKCS7Padding,跟PKCS5Padding是一样的,所以加密时加上红色部分的参数即可:CryptoJS.AES.encrypt(text, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});