🌐
English
简体中文
Tiếng Việt
日本語
한국어
हिन्दी
Español
Français
العربية
বাংলা
Português
Русский
اردو
Bahasa Indonesia
Deutsch
Naijá
मराठी
తెలుగు
Türkçe
தமிழ்
主页
实用工具
AES 加密工具
// cryptographic tool v2.0
AES
Cipher
CLIENT-SIDE ONLY
WEB CRYPTO API
🔒
纯客户端运行
— 密钥与数据仅在你的浏览器内处理,从不上传至任何服务器。基于浏览器原生 Web Crypto API 实现。
⚙
Algorithm Configuration
Mode
CBC
CTR
GCM
Key Size
128-bit
192-bit
256-bit
Padding
PKCS#7
Zero Pad
Output Encoding
Base64
Hex
🔑
Key & IV Material
Secret Key
GENERATE
需要
32
字符 (256-bit)
IV / Nonce
GENERATE
Hex IV 需
32
字符 (CBC/CTR=32, GCM=24)
⚠
GCM 模式下此 Nonce 已被使用过,
重复使用 Nonce 会严重破坏加密安全性
,请重新生成
⬇
松开以加载文件
PLAINTEXT / INPUT
上传文件
✕
CIPHERTEXT / OUTPUT
下载为
.txt
Base64/Hex 文本格式
可直接阅读或粘贴
加密完成
— 原始二进制字节,可上传至解密工具
下载 .enc
将本次配置(Mode / Key Size / Key / IV)导出,在解密工具中直接使用
复制配置
下载配置
▶ ENCRYPT
需要解密?
就绪 — 配置密钥后点击加密或解密
Algorithm
AES
CBC Mode
Key Strength
256
bits
Security Level
HIGH
Military Grade
Processed
0
bytes this session
🔑
为什么需要 Secret Key(密钥)?
AES 是对称加密算法,加密和解密使用同一把密钥。密钥的长度决定了加密强度:128-bit 提供标准保护,192-bit 用于政府级场景,256-bit 是目前最高安全等级,被广泛用于军事和金融领域。
密钥必须严格保密——任何持有密钥的人都能解密你的数据。请勿通过不安全渠道传输密钥,建议使用随机生成器生成而非手动输入。
🎲
为什么需要 IV / Nonce(初始向量)?
IV(Initialization Vector)确保即使用相同密钥加密相同内容,每次产生的密文也不同,从而防止模式分析攻击。
CBC 和 CTR 模式需要 16 字节(32 hex 字符)的 IV;GCM 模式使用 12 字节(24 hex 字符)的 Nonce。IV 无需保密,但每次加密都应使用新的随机 IV,切勿重复使用,否则会严重削弱加密安全性。
⚙️
加密模式(Mode)是什么?
AES 本身只能加密固定大小的 16 字节块,Mode 决定了如何将多个块串联起来加密任意长度的数据。
CBC(Cipher Block Chaining)
:每个块加密前先与上一块的密文异或,安全性好,是最常用的模式,适合文件和通信加密。
CTR(Counter)
:将计数器加密后与明文异或,可并行处理,速度快,适合大文件和流式场景。
GCM(Galois/Counter Mode)
:在 CTR 基础上增加认证标签,可同时保证机密性和完整性(防篡改),是 TLS/HTTPS 的首选模式,推荐优先使用。
📏
密钥长度(Key Size)如何选择?
密钥越长,暴力破解所需的计算量呈指数级增长,安全性越高,但加密速度略有下降。
128-bit
:2¹²⁸ 种可能,已足够应对绝大多数应用场景,性能最佳。
192-bit
:2¹⁹² 种可能,用于对安全级别有较高要求的政府或企业场景。
256-bit
:2²⁵⁶ 种可能,抵抗量子计算攻击的首选强度,军事与金融领域标准配置。如无特殊性能限制,推荐始终使用 256-bit。
📦
填充方式(Padding)是什么?
AES 以 16 字节为一个块进行加密。当数据长度不是 16 的整数倍时,需要对最后一个块进行填充补齐。
PKCS#7
:填充字节的值等于需要填充的字节数。例如需要填充 3 字节,则填充
03 03 03
。解密后可精确还原原始数据,是最常用的标准方案。
Zero Padding
:用
00
字节填充。简单但存在歧义——若原始数据末尾本身就有
00
,解密时无法区分,适用于已知长度的场景。
🔠
输出编码(Output Encoding)是什么?
AES 加密的原始结果是二进制字节,不能直接作为文本传输或存储。Output Encoding 将这些字节转换为可打印的文本格式。
Base64
:将每 3 字节编码为 4 个 ASCII 字符,输出体积约为原始的 1.33 倍。紧凑易传输,广泛用于 API、邮件和 JSON 场景。
Hex(十六进制)
:将每字节表示为 2 个十六进制字符,输出体积是原始的 2 倍。可读性强,便于调试和逐字节检查,常见于安全工具和日志场景。