个人网站怎么做代码,如何制作app课件教程,wordpress 快速填写qq,网站布局内容前端用crypto-js实现加解密#xff0c;node端用Crypto模块#xff0c;两者想要相同结果的话#xff0c;就要保持加密密钥和加密算法一致。
crypto-js加密、解密 参考#xff1a; 『crypto-js 加密和解密』 前端使用CryptoJS加密解密 // DES算法
import CryptoJS from cryp…前端用crypto-js实现加解密node端用Crypto模块两者想要相同结果的话就要保持加密密钥和加密算法一致。
crypto-js加密、解密 参考 『crypto-js 加密和解密』 前端使用CryptoJS加密解密 // DES算法
import CryptoJS from crypto-js// 16位十六进制数作为密钥秘钥为随机生成必须与后端保持一致
const SECRET_KEY CryptoJS.enc.Utf8.parse(XXX12XXX)
// 16位十六进制数作为密钥偏移量秘钥为随机生成必须与后端保持一致
const SECRET_IV CryptoJS.enc.Utf8.parse(XXX12XXX)
// 加密
export const encrypt (plaintext: string): string {const dataHex CryptoJS.enc.Utf8.parse(plaintext)const encrypted CryptoJS.DES.encrypt(dataHex, SECRET_KEY, {iv: SECRET_IV,mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7})return encrypted.ciphertext.toString(CryptoJS.enc.Hex).toUpperCase()
}// 解密
export const decrypt (encryptText: string): string {const encryptedHexStr CryptoJS.enc.Hex.parse(encryptText)const str CryptoJS.enc.Base64.stringify(encryptedHexStr)const decrypt CryptoJS.DES.decrypt(str, SECRET_KEY, {iv: SECRET_IV,mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7})const decryptedStr decrypt.toString(CryptoJS.enc.Utf8)return decryptedStr.toString()
}node Crypto加解密模块 参考 Crypto加解密模块 // des-ecb算法
const crypto require(crypto);
//加密
function encrypt(plaintext, secret XXX12XXX) {if (typeof plaintext ! string) {plaintext plaintext ;}let key Buffer.from(secret),iv Buffer.alloc(0);let cipher crypto.createCipheriv(des-ecb, key, iv);cipher.setAutoPadding(true);let ciph cipher.update(plaintext, utf8, hex);ciph cipher.final(hex);return ciph.toUpperCase();
}//解密
function decrypt(encrypt_text, secret XXX12XXX) {let key Buffer.from(secret)const decipher crypto.createDecipheriv(des-ecb, key, );let decrypted decipher.update(encrypt_text, hex, utf8);decrypted decipher.final(utf8);return decrypted;
}
相关文章: