使用 crypto-js 庫
官方文檔:https://cryptojs.gitbook.io/docs/
github:https://github.com/brix/crypto-js
項目引入 crypto-js 庫
- npm:
npm install crypto-js
import CryptoJS from ‘crypto-js’ - js:
https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js
測試
在線測試:https://npm.runkit.com/crypto-js
瀏覽器調試:瀏覽器控制檯 console 引入 js 文件
示例:DES加解密
/**
* DES 加密
* text:明文, secretKey:密鑰
*/
function encryptByDES(text, secretKey){
const keyHex = CryptoJS.enc.Utf8.parse(secretKey);
const encrypted = CryptoJS.DES.encrypt(text, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
/**
* DES 解密
* ciphertext:密文, secretKey:密鑰
*/
function decryptByDES(ciphertext, secretKey){
const keyHex = CryptoJS.enc.Utf8.parse(secretKey);
const decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(ciphertext)},
keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
使用
const secretKey = "myKey";
var text = "123456";
var ciphertext = encryptByDES(text, secretKey);
console.log("加密後:", ciphertext);
//加密後:nDqiq+cwnHI=
console.log("解密後:", decryptByDES(ciphertext, secretKey));
//解密後:123456
end