关于1.是斯坦福大学计算机安全实验室创立的项目,旨在创建一个安全、快速、短小精悍、易使用、跨浏览器的js加密库。如果有更复杂的安全需求,可以查阅api,文档地址是(http://bitwiseshiftleft.github.com/sjcl/doc/),对应的demo页面是(http://bitwiseshiftleft.github.com/sjcl/demo/)。
比较容易上手,简单的用下面的代码就可以进行加密、解密数据。
sjcl.encrypt("password", "data")//加密数据
sjcl.decrypt("password","encrypted-data") // 解密数据
crypto是node的内置模块,目的是提供通用的加密和哈希算法。nodejs用c/c =实现这些算法后,通过crypto这个模块暴露位js接口,方便使用,提高运行速度。使用的时候要安装一下。
一、base64加密
base64的github地址
示例
前端的base64使用方法
输出结果
二、md5加密(不可逆)
md5加密的github地址
关于md5:
md5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件。
md5共有6种加密方法:
1, hex_md5(value)
2, b64_md5(value)
3, str_md5(value)
4, hex_hmac_md5(key, data)
5, b64_hmac_md5(key, data)
6, str_hmac_md5(key, data)
md5代码下载地址——点此下载
下载好了用script 标签引入使用
">
输出结果
三、sha1加密(不可逆)
sha1的github地址
此处没找到sha1.js下载地址,所以在bootcdn中找在线文件到引入,需要的可自行从bootcdn中下载
输出结果
四、编码和解码字符串
使用js函数的escape()和unescape(),分别是编码和解码字符串
输出结果
五、aes/des加密解密
下载crypto-js.js 引入使用 网址是点击下载
var asekey = "12345678" //秘钥必须为:8/16/32位
var message = "80018000142";
//加密
var encrypt = cryptojs.aes.encrypt(message, cryptojs.enc.utf8.parse(asekey), {
mode: cryptojs.mode.ecb,
padding: cryptojs.pad.pkcs7
}).tostring();
console.log(encrypt); //vkrzlqykem73x8/t2ocfcq==
//解密
var decrypt = cryptojs.aes.decrypt(encrypt, cryptojs.enc.utf8.parse(asekey), {
mode: cryptojs.mode.ecb,
padding: cryptojs.pad.pkcs7
}).tostring(cryptojs.enc.utf8);
console.log(decrypt); //80018000142
【注】:加密的时候必须转成字符串 使用tostring。 解密的时候 必须使用utf8的格式
var encrypt = new jsencrypt();
encrypt.setpublickey($('#pubkey').val());
var encrypted = encrypt.encrypt($('#input').val());
// decrypt with the private key...
var decrypt = new jsencrypt();
decrypt.setprivatekey($('#privkey').val());
var uncrypted = decrypt.decrypt(encrypted);