AES 加密AES Encryption
基于浏览器原生 Web Crypto API 的 AES 在线加密解密,支持 AES-GCM(认证加密,首选)/ AES-CBC / AES-CTR 三种模式与 128 / 192 / 256 位密钥,口令经 PBKDF2-SHA256 派生密钥,也支持 Hex / Base64 原始密钥与 openssl / CryptoJS / Java 互验。保存配置文件、加密敏感字段、联调前后端加密更快。密钥与明文全程不上传。
工具介绍
3 段详细说明AES 加密是面向开发者与普通用户的一站式对称加解密工具。支持 AES-GCM(认证加密,首选)/ AES-CBC / AES-CTR 三种模式与 128 / 192 / 256 位密钥,口令经 PBKDF2-SHA256 派生密钥,也支持粘贴 Hex / Base64 原始密钥与后端或 openssl / CryptoJS / Java 互验,保存配置、加密敏感字段、联调前后端加密更快。
全部基于浏览器原生 Web Crypto API 完成,零第三方依赖:IV 与盐由 CSPRNG 随机生成,加密结果与密钥派生参数逐行展示、一键复制。GCM 模式自带认证标签,密文被篡改会直接报错,不用额外配合 HMAC 验签。
所有计算都在浏览器内存中完成,密钥与明文不上传任何服务器。支持 ⌘+↵ 快捷键执行、「交换」按钮把密文一键填回输入区反向解密、断网可用,适合临时加密配置片段、核对前后端加密结果等高频场景。
基础知识 · AES 加密
FIPS 197 · 3 种模式AES(Advanced Encryption Standard)是NIST 于 2001 年标准化的对称分组密码(FIPS 197),前身为 Rijndael,是全球应用最广的加密算法。理解以下 6 个要点,就能正确、安全地使用它:
symmetric对称加密block cipher分组密码modes三种模式怎么选CBC:老系统兼容最广,需 PKCS#7 填充;CTR:流式无填充、可并行。ECB 绝不使用(相同明文块 → 相同密文块,泄露结构)。iv / nonceIV 的唯一性key sizes密钥长度128 / 192 / 256 位。即使 128 位,暴力破解在可预见算力下不可行(约 3.4×10³⁸ 种密钥);256 位面向数十年保密需求。真正的薄弱点在密钥管理,而非算法本身。passphrase ≠ key口令不是密钥PBKDF2-SHA256 迭代 10 万次 + 16 字节随机盐,把口令变成均匀随机的 AES 密钥,大幅抬高逐个尝试口令的成本。≥128 位 的 CSPRNG 随机数据(可用随机密码工具生成),通过加密信道分发;口令建议 ≥ 12 字符、混合大小写数字符号。HMAC-SHA256 对密文(encrypt-then-MAC)验签后再解密,防填充预言机与密文篡改。openssl enc -aes-256-cbc -K <hex> -iv <hex> -in f -out f.enc,注意 -K 是原始密钥、小写 -k 是口令(EVP_BytesToKey 派生,与本工具 PBKDF2 不互通)。绝不使用 ECB;口令存储必须用慢哈希(bcrypt / argon2);密文只是保密手段,完整性校验请配合 HMAC 或 GCM。使用说明
4 步快速入门使用场景
5 个真实案例数据库连接串、API Key 等敏感片段用 AES-256-GCM 加密后再入库 / 上传,需要时本地解密还原。
后端用 openssl / Java / Node 加密的数据贴回来本地解密,或反向加密样本给后端,快速定位密钥、IV、模式、编码差异。
同一段明文分别用三种模式加密对比输出结构(GCM 附 16 字节认证标签、CBC 有块填充、CTR 流式无填充),加深理解。
GCM 认证标签自动校验:密钥或密文哪怕错 1 bit,解密直接报错,可确认数据未被篡改。
把口令通过其他渠道(口头 / 电话)告知对方,密文走聊天工具发送,实现端到端加密的轻量替代。
常见问题
10 个问答GCM、CBC、CTR 三种模式怎么选?
优先 AES-GCM:自带认证标签(防篡改),解密失败即说明密文或密钥不对,是 NIST 推荐的现代首选。CBC 是老系统最常见的兼容模式,但无认证、需配合 HMAC 或填充预言机防护;CTR 是流式模式、无填充、可并行,同样需另行认证。ECB 因相同明文块输出相同密文块,本工具不提供。
我的密钥和明文会上传到服务器吗?
不会。所有计算通过浏览器原生 Web Crypto API 在本机内存完成,密钥与明文不上传任何服务器。可断网使用,关闭网络后再打开仍能正常使用。
「口令」和「原始密钥」有什么区别?
口令(如 wang1990、correct horse)熵低、不能直接当 AES 密钥,本工具用 PBKDF2-SHA256 迭代 10 万次 + 16 字节随机盐把它拉伸成 128/192/256 位密钥。原始密钥(Hex / Base64)是恰好 16/24/32 字节的高熵随机数据,直接使用。两者无法互查——口令模式的密钥由盐决定,盐不同结果完全不同。
IV 是什么?为什么解密还要填一次?
IV(初始化向量)让相同明文 / 密钥每次加密出不同密文。它不需要保密(加密结果区直接明文展示),但解密时必须提供与加密时完全相同的 IV。工具在加密时用 CSPRNG 自动生成(GCM 12 字节、CBC / CTR 16 字节)并随密文逐行输出,请与密文一同保存。
解密报「解密失败」怎么排查?
GCM 模式下该报错说明认证标签校验未通过,按顺序核对:① 密钥与加密时一致;② IV / 盐为加密时输出的原值;③ 输出格式(Base64 / Hex)与加密时一致;④ 密文完整未被截断或改动。CBC / CTR 模式密钥错误时通常不报错而是解出乱码,需自行核对。
与 openssl / CryptoJS / Java 的结果一致吗?
原始密钥模式下一致:AES-GCM/CBC/CTR 是标准算法,只要密钥、IV、模式、填充相同,结果互通(GCM 建议与 openssl enc 的等价命令行核对)。口令模式使用 PBKDF2-SHA256(10 万次迭代 + 16 字节盐),与 CryptoJS 默认的 OpenSSL EVP_BytesToKey 口令派生不同——互验时请统一用原始密钥模式。
为什么每次加密的结果都不一样?
正常现象。IV 与盐(口令模式)每次由 CSPRNG 随机生成,相同明文与密钥每次得到不同密文——这正是安全性所在。只要解密时提供相同的密钥、IV 与盐,都能还原出同一段明文。
支持 192 位密钥吗?
支持。工具栏密钥长度提供 128 / 192 / 256 三档:128 位已足够抵御暴力破解,256 位面向长期保密需求,192 位多为兼容老系统约定。原始密钥模式下需提供恰好 16 / 24 / 32 字节的密钥数据。
能加密文件吗?
本工具面向文本片段(建议 ≤ 1 MB)。大文件 / 图片加密请使用后续上线的「加密文件」工具(流式处理,避免内存占用)。加密前明文按 UTF-8 编码,中文、emoji 均可正确还原。
AES 能用来存密码吗?
不能。AES 是可逆加密,能解密就意味着系统被攻破后密码全部泄露。口令存储必须使用单向慢哈希(bcrypt / scrypt / argon2 + 每用户随机盐)。AES 适合的是「需要还原原文」的保密场景,如配置、文档、消息。
相关工具
编码加密分类数据来源
隐私优先Web Crypto API(crypto.subtle),AES-GCM(NIST SP 800-38D)/ AES-CBC(SP 800-38A)/ AES-CTR(SP 800-38A)标准实现, 密钥派生使用 PBKDF2-SHA256 (10 万次迭代 + 16 字节随机盐),IV 与盐由 CSPRNG(crypto.getRandomValues)生成。零第三方依赖、无 WASM, 与 openssl、Java JCE、CryptoJS(原始密钥模式)等主流实现互通。