前端加解密庫 crypto-js,示例 DES

使用 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章