## 什么是 WordArray? 官方文档是这么描述的: > CryptoJS can convert from encoding formats such as `Base64` , `Latin1` or > `Hex` to `WordArray` objects and vice-versa. 翻译过来就是: `CryptoJS` 可以从 `Base64` 、 `Latin1` 或 `Hex` 等编码格式转换为 `WordArray` 对象(数组也算一种全局对象),反之亦然 一般来说,秘钥字符串、明文字符串这些都会被转为 `WordArray` 类型,方便处理 示例用法: let words = CryptoJS.enc.Base64.parse("SGVsbG8sIFdvcmxkIQ=="); let base64 = CryptoJS.enc.Base64.stringify(words); let words = CryptoJS.enc.Latin1.parse("Hello, World!"); let latin1 = CryptoJS.enc.Latin1.stringify(words); let words = CryptoJS.enc.Hex.parse("48656c6c6f2c20576f726c6421"); let hex = CryptoJS.enc.Hex.stringify(words); let words = CryptoJS.enc.Utf8.parse(""); let utf8 = CryptoJS.enc.Utf8.stringify(words); let words = CryptoJS.enc.Utf16.parse("Hello, World!"); let utf16 = CryptoJS.enc.Utf16.stringify(words); let words = CryptoJS.enc.Utf16LE.parse("Hello, World!"); let utf16 = CryptoJS.enc.Utf16LE.stringify(words); ## 为什么输出 key 返回了长度为 4 的数组? 上文提及,字符串会被转为 “单词数组”,而每个 `ASCII` 字符在 `UTF-8` 编码下通常只占用 **一个字节** ,所以按 **四个字符** 划分为一个处理后的 32 位整数,LSXR|MYY0|3716|5336 对应长度为 4 参考: > [官方文档-> encoders](https://link.segmentfault.com/?enc=RHhbB7G9nyF6Za7f8c8CVw%3D%3D.WQt7cGi7s6OiWe8duKCwuhUQx6PKw2wJglSvbBBsZ6fBiqIg4pWdi4ziRtc6CaNT)