先数字节,再数字符
| 密钥位数 | 字节 | Hex 位数 | Base64 长度 |
|---|---|---|---|
| 128 | 16 | 32 | 24 |
| 192 | 24 | 48 | 32 |
| 256 | 32 | 64 | 44 |
Base64 长度包含标准填充。编码只改变表示,不改变随机熵。64 个 Hex 字符表示 32 字节,与 64 个 UTF-8 字符通常不是同一段数据。
遵循接收方协议
接收方必须使用同一密钥与算法。把 AES-256 截短成 AES-128 不能保留兼容性,单方面加长密钥也不能升级已有密文。所有 AES 变体的分组大小仍为 128 位;模式、nonce、认证和密钥管理同样重要。
生成器用 crypto.getRandomValues 产生三种长度。原始 AES-192 明确使用兼容后端,128/256 使用 Web Crypto;目标浏览器的 Worker、剪贴板与下载仍需实际检查。
UTF-8 长度实验
八个中文字符可能占 24 字节,而不是八字节。虽然这可构成 192 位字节序列,但好记的词不自动等于强随机密钥。工具按解码后的字节校验,不会截断、重复或补零。
协议要求原始密钥时用随机生成器;人类输入密码时选密码模式,使用 salt 和工作量明确的 PBKDF2 派生。把密码直接填进原始密钥框不会执行同样的派生。
保存密钥还不够
原始密钥之外还需保存模式、nonce/IV、tag 布局、AAD、编码及填充或计数规则。参数与密文可一同记录,密钥应分开保护。更换密钥时,仍需保留旧数据所依赖的旧密钥;本站不管理密钥库存,也不恢复丢弃的值。
相关工具与阅读
技术参考
更新于 2026 年 10 月 16 日