md5
https://github.com/blueimp/JavaScript-MD5
var hash = md5('value') // "2063c1608d6e0baf80249c42e2be5804"
MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
md5加密一般用于确保文件和代码的唯一性,可以根据计算代码的md5值来判断代码是否被改变。
des/aes
https://github.com/brix/crypto-js
DES是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用
1. 在utils/common.js中 写入公用的方法
eg:
// 公用方法
import CryptoJS from "../common/crypto-js/crypto-js.js" // 加密
// 在main.js中引入
export default {
// 加密
encryptByDES(message, key) {
const keyHex = CryptoJS.enc.Utf8.parse(key);
const encrypted = CryptoJS.DES.encrypt(message, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return encrypted.toString();
}
}
2. 在main.js中引入
import commonFun from './utils/common.js'
//在 vue 的原型链 (prototype) 中注册
Vue.prototype.$commonFun = commonFun
3. 页面中使用
this.$commonFun.encryptByDES(参数1, 参数2);
//参数1:需要加密的数据
//参数2:加密key
rsa
https://github.com/rzcoder/node-rsa
RSA是被研究得最广泛的公钥算法,从提出到现在已近三十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
const NodeRSA = require('node-rsa');
const key = new NodeRSA({b: 512});
const text = 'Hello RSA!';
const encrypted = key.encrypt(text, 'base64');
console.log('encrypted: ', encrypted);
const decrypted = key.decrypt(encrypted, 'utf8');
console.log('decrypted: ', decrypted);
base64
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法
浏览器的window对象默认就有base64的加解密函数
const code = '(function(){ alert(\'hello\') }())'
const en = window.btoa(code); // 加密
const de = window.atob(en); // 解密
sha1
https://github.com/emn178/js-sha1
SHA1是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
sha1('Message to hash');
var hash = sha1.create();
hash.update('Message to hash');
hash.hex();
sha256
https://github.com/emn178/js-sha256
SHA256是一种散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布,属于SHA算法之一。和SHA1属于不同算法标准
sha256('Message to hash');
sha224('Message to hash');
var hash = sha256.create();
hash.update('Message to hash');
hash.hex();
var hash2 = sha256.update('Message to hash');
hash2.update('Message2 to hash');
hash2.array();
// HMAC
sha256.hmac('key', 'Message to hash');
sha224.hmac('key', 'Message to hash');