在业务系统中,一般须要对用户的密码进行加密,再时行http的请求。增强系统登陆的安全验证。javascript
经常使用的加密方式有MD5, Base64, CryptoJS的 AES DES等。下面介绍我经常使用的几种加密方法的使用:java
$ npm install ts-md5 --save
import { Md5 } from 'ts-md5'; // ... // 密码 password: string = "12345"; // 加密方法 - md5加密 decode() { const passwordMd5 = Md5.hashStr(this.password).toString(); // 结果:827ccb0eea8a706c4c34a16891f84e7b }
$ npm install js-base64 --save
import { Base64 } from 'js-base64'; // ... // 密码 password: string = "12345"; // 加密方法 - Base64加密 decode() { const passwordBase64 = Base64.encode(password); // 结果:MTIzNDU= }
DES对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是一样的密钥key
,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码),是一种对称加密算法。crypto-js Github: https://github.com/brix/crypt...git
$ npm install crypto-js --save
import CryptoJS from 'crypto-js'; // ... // 密钥 key: string = "abcdefg"; // 密码 password: string = "12345"; // 加密方法 - des加密 decode() { // key编码 const keyHex = CryptoJS.enc.Utf8.parse(this.key); console.log(keyHex.toString()); // 结果:61626364656667 // 加密 const passwordDES = CryptoJS.DES.encrypt(this.password, keyHex, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }).toString(); console.log(passwordDES); // 结果:zYGeIdaZpEM= }
加密用法基本与des一致。github
import CryptoJS from 'crypto-js'; // ... // 密钥 key: string = "abcdefg"; // 密码 password: string = "12345"; // 加密方法 - des加密 decode() { // 加密 const passwordDES = CryptoJS.AES.encrypt(this.password, this.key).toString(); console.log(passwordDES); }