Files
qncV4uni-app/src/utils/crypto.js
2026-05-18 13:54:57 +08:00

25 lines
862 B
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import CryptoJS from 'crypto-js'
/** 与 tyc-webview-v2 `utils/crypto.js` 一致AES-CBCIV 前置后 Base64 */
export function aesEncrypt(plainText, hexKey) {
const key = CryptoJS.enc.Hex.parse(hexKey)
const iv = generateRandomIV()
const encrypted = CryptoJS.AES.encrypt(plainText, key, {
iv,
padding: CryptoJS.pad.Pkcs7,
mode: CryptoJS.mode.CBC,
})
const ivAndCipherText = iv.concat(encrypted.ciphertext)
return CryptoJS.enc.Base64.stringify(ivAndCipherText)
}
function generateRandomIV() {
const iv = []
for (let i = 0; i < 16; i++)
iv.push(Math.floor(Math.random() * 256))
return CryptoJS.enc.Hex.parse(iv.map(b => b.toString(16).padStart(2, '0')).join(''))
}
/** 与 H5 `InquireForm.vue` 中 `aesEncrypt(..., key)` 使用的密钥一致 */
export const QUERY_PAYLOAD_AES_HEX_KEY = 'ff83609b2b24fc73196aac3d3dfb874f'