AES加密密钥生成器
指导
AES加密密钥生成器
生成 128、192 或 256 位加密安全的 AES 加密密钥,格式为十六进制或 Base64。一次最多可生成 10 个用于 AES-CBC、AES-GCM、AES-CTR 或任何 AES 模式的密钥。所有密钥均使用浏览器 crypto.getRandomValues() API以实现真正的随机性。
如何使用
选择 AES 密钥大小(128、192 或 256 位),选择首选的 AES 模式以供参考,选择输出格式(十六进制或 Base64),并设置要生成的密钥数量。点击 产生 即可即时生成密钥。每个密钥都可以单独复制。
特征
- 3 种密钥大小 – 128 位(16 字节)、192 位(24 字节)、256 位(32 字节)
- 所有 AES 模式 – GCM、CBC、CTR、CFB、OFB、ECB(用于上下文标记)
- 双输出格式 – 十六进制或 Base64
- 批量生成 – 一次生成1到10个密钥
- 加密安全 – 使用
crypto.getRandomValues() - 仅客户端 – 密钥绝不会被传输
常问问题
-
AES-128、AES-192 和 AES-256 之间有什么区别?
AES-128、AES-192 和 AES-256 分别指密钥长度(128、192 和 256 位)。这三种都使用相同的 128 位块密码算法,但轮数不同:分别为 10、12 和 14 轮。AES-256 提供了最高的安全余量,但比 AES-128 慢约 40%。对于大多数应用,具有强随机密钥的 AES-128 被认为足够安全。
-
AES-GCM 和 AES-CBC 之间有什么区别?
AES-GCM(伽罗瓦/计数器模式)是一种认证加密模式,可在一次操作中同时提供机密性和完整性/真实性,生成密文和认证标签。AES-CBC(密码块链接)仅提供机密性,需要单独的 MAC(例如 HMAC)来进行完整性验证。在 TLS 1.3 等现代协议中,AES-GCM 更受青睐,因为它在硬件中速度更快,并可避免填充预言机漏洞。
-
为什么 AES 密钥应该使用 CSPRNG 生成?
AES 的安全性完全取决于密钥的不可预测性。像
crypto.getRandomValues()这样的密码安全伪随机数生成器 (CSPRNG) 产生的输出在计算上与真正的随机性无法区分,使得穷举密钥搜索在计算上不可行。使用Math.random()或基于时间的种子会产生可预测的密钥,这些密钥可以轻易被破解。 -
AES 密钥应如何安全存储?
AES 密钥永远不应存储在源代码、明文环境变量或版本控制中。请使用专用的密钥管理器(AWS KMS、HashiCorp Vault、Azure Key Vault)进行密钥存储。对于长期数据,请使用信封加密:使用数据加密密钥 (DEK) 加密数据,然后使用存储在 KMS 中的密钥加密密钥 (KEK) 加密 DEK。定期轮换密钥并审核所有密钥访问。
