2021-04-10 16:43:44
在前端 JavaScript 中,MD5 算法本身并不直接支持加密数组,但可以通过将数组转换为字符串后进行加密。以下是具体步骤及示例代码:
步骤说明将数组转换为字符串将数组元素按顺序拼接成字符串,确保转换方式一致(如无分隔符、特定分隔符等)。
示例:数组 [1, 2, 3] → 字符串 "123"
若需分隔符:[1, 2, 3] → "1,2,3"(需在解密时保持相同规则)。
使用 MD5 库加密字符串通过 JavaScript 的 MD5 库(如 crypto-js 或 spark-md5)对字符串生成哈希值。
转换为十六进制哈希值MD5 生成的 128 位二进制值通常转换为 32 位十六进制字符串(如 "202cb962ac59075b964b07152d234b70")。
若需可逆加密,可结合 CryptoJS 的 AES 加密:
// 加密数组(可逆)function aesEncryptArray(arr, secretKey) { const str = JSON.stringify(arr); const encrypted = CryptoJS.AES.encrypt(str, secretKey).toString(); return encrypted;}// 解密数组function aesDecryptArray(encrypted, secretKey) { const bytes = CryptoJS.AES.decrypt(encrypted, secretKey); const decrypted = JSON.parse(bytes.toString(CryptoJS.enc.Utf8)); return decrypted;}const array = [1, 2, 3];const key = "my-secret-key";const encrypted = aesEncryptArray(array, key);const decrypted = aesDecryptArray(encrypted, key);console.log(decrypted); // 输出 [1, 2, 3]总结根据需求选择合适的方法,并注意安全性限制。