Crypto-JS是一个javascript加密解密库,使用该库进行加密解密的在线工具如:
https://tool.oschina.net/encrypt
这个库的用法比较简单,相关文件可以在上面的页面查看html找到,我也备份了:
https://github.com/setycyas/WebTools/tree/gh-pages/libs/Crypto-JS
文件众多,总结起来就2种,一个是核心文件core-min.js,其他的都是具体的某一种加密方法.
使用时必须加载core-min.js,然后使用哪种加密解密就加载哪个加密文件,看名字就知道是什么加密,
只有 tripledes.js比较特殊,包括DES与TripleDES两种加密解密.
加密函数的参数是:(明文字符串, 密码字符串),返回密文字符串.加密函数是:
CryptoJS.AES.encrypt, CryptoJS.DES.encrypt,CryptoJS.Rabbit.encrypt,CryptoJS.RC4.encrypt,CryptoJS.TripleDES.encrypt
解密函数的参数是:(密文字符串, 密码字符串),返回的结果必须用.toString(CryptoJS.enc.Utf8)转为明文.解密函数是:
CryptoJS.AES.decrypt, CryptoJS.DES.decrypt,CryptoJS.Rabbit.decrypt,CryptoJS.RC4.decrypt,CryptoJS.TripleDES.decrypt
我自制的函数举例:
/* 加密,解密函数,接受与输出都是utf-8 */
/* 加密函数,参数为:明文,密码,加密类型,返回加密结果 */
function encrypt(src, pw, encryptType){
var encryptFunction;
switch(encryptType.toLowerCase()){
case "aes":
encryptFunction = CryptoJS.AES.encrypt;
break;
case "des":
encryptFunction = CryptoJS.DES.encrypt;
break;
case "rabbit":
encryptFunction = CryptoJS.Rabbit.encrypt;
break;
case "rc4":
encryptFunction = CryptoJS.RC4.encrypt;
break;
case "tripledes":
encryptFunction = CryptoJS.TripleDES.encrypt;
break;
}
return encryptFunction(src, pw);
}
/* 解密函数,参数: 密文,密码,解密类型,返回解密结果 */
function decrypt(code, pw, decryptType){
var decryptFunction;
switch(decryptType.toLowerCase()){
case "aes":
decryptFunction = CryptoJS.AES.decrypt;
break;
case "des":
decryptFunction = CryptoJS.DES.decrypt;
break;
case "rabbit":
decryptFunction = CryptoJS.Rabbit.decrypt;
break;
case "rc4":
decryptFunction = CryptoJS.RC4.decrypt;
break;
case "tripledes":
decryptFunction = CryptoJS.TripleDES.decrypt;
break;
}
return decryptFunction(code, pw).toString(CryptoJS.enc.Utf8);
}
来源:oschina
链接:https://my.oschina.net/u/3223803/blog/4293322