AES 加解密

npm install crypto-js import cryptoJs from 'crypto-js';

加密CBC模式

export const encryptAes = (message: string, key: string, iv: string) => { const keyHex = cryptoJs.enc.Utf8.parse(key); const ivHex = cryptoJs.enc.Utf8.parse(iv); const option = { iv: ivHex, mode: cryptoJs.mode.CBC, padding: cryptoJs.pad.Pkcs7 }; const encrypted = cryptoJs.AES.encrypt(message, keyHex, option); const str = encrypted.toString(); return str; };

加密ECB模式

export const encryptEcb = (word: string, key: string) =>{ const keyHex = cryptoJs.enc.Utf8.parse(key); const text = cryptoJs.enc.Utf8.parse(word); const option = { mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.Pkcs7 }; const encrypted = cryptoJs.AES.encrypt(text, keyHex, option); const str = encrypted.toString(); return str; };

解密ECB模式

export const decryptEcb = (word: string, key: string) => { const keyHex = cryptoJs.enc.Utf8.parse(key); const option = { mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.Pkcs7 }; const decrypt = cryptoJs.AES.decrypt(word, keyHex, option); return cryptoJs.enc.Utf8.stringify(decrypt).toString(); }

base64 加密

export const base64Encode = (val: string) => { const str = cryptoJs.enc.Utf8.parse(val); const base64 = cryptoJs.enc.Base64.stringify(str); return base64; }

base64 解密

export const base64Decode = (val: string) => { const words = cryptoJs.enc.Base64.parse(val); const deBase64 = words.toString(cryptoJs.enc.Utf8); return deBase64; }

HmacSHA256加密 输出16进制

export const hmacSHA256 = (word: string, secretKey='6sDQ8JLsXoDkMWA') => { const hash = cryptoJs.HmacSHA256(word, secretKey); const hex16 = cryptoJs.enc.Hex.stringify(hash); return hex16; }

node:crypto Aes 加密ECB模式

let crypto = require('node:crypto') let secret = 'w*s&=izikqujzaaq' let key = secret let iv = '' let cipher = crypto.createCipheriv('aes-128-ecb', key, iv); const ciphertext = cipher.update('12345', 'Utf8', 'base64') + cipher.final('base64');

node:crypto Aes 解密ECB模式

let crypto = require('node:crypto') let secret = 'w*s&=izikqujzaaq' let key = secret let iv = '' const decipher = crypto.createDecipheriv('aes-128-ecb', key, iv); const receivedtext = decipher.update(ciphertext, 'base64', 'utf8') + decipher.final();
京ICP备2022027730号
返回 顶部