供应商接口密钥交接
SaaS 公司技术负责人离职前,将第三方支付接口的 AES-256 密钥写在交接文档里。新运维接手后,需要验证该密钥是否能在生产环境正确解密一段历史交易日志。用本工具,直接输入密钥和密文,选择 AES-256-CBC 模式,即刻比对解密结果是否与原始日志吻合,避免因密钥误写导致线上支付回调失败。
在配置 Web 应用的 HTTPS 证书或存储用户密码哈希前,常需要将明文转为 AES 密文。这个工具直接接受密钥与明文,支持 AES-128 与 AES-256,并在 CBC、GCM、ECB 三种模式间切换。所有加解密均在浏览器本地执行,不向服务器发送任何数据——适合开发者在本地调试、验证加密逻辑,或安全审计时快速比对密文输出。
SaaS 公司技术负责人离职前,将第三方支付接口的 AES-256 密钥写在交接文档里。新运维接手后,需要验证该密钥是否能在生产环境正确解密一段历史交易日志。用本工具,直接输入密钥和密文,选择 AES-256-CBC 模式,即刻比对解密结果是否与原始日志吻合,避免因密钥误写导致线上支付回调失败。
外贸跟单员要将含客户银行账号的 PDF 报价单发给欧洲工厂,但公司邮箱不支持端到端加密。双方事先约定好 AES-128 口令,跟单员用本工具将 PDF 压缩包加密为 .enc 文件,工厂收到后同样用本工具输入口令解密。全程不依赖任何第三方云盘或加密软件,避免敏感信息在跨国传输中被中间人截获。
开发工程师在本地测试环境需要模拟生产库中的手机号字段,但生产数据经过 AES-256-GCM 加密。测试脚本无法直接读取密文。工程师将一段生产密文和密钥粘贴到本工具,解密后看到明文格式,确认加密逻辑正确后,再编写测试用例模拟相同加密流程,确保上线后加解密功能不报错。
物联网设备运维人员拿到一批退回的旧传感器,其 Wi-Fi 配置信息以 AES-128-ECB 模式加密存储在芯片中。需要先解密出原始 SSID 和密码,才能重新配置后再次投入使用。使用本工具,输入从芯片读出的 16 进制密文和已知密钥,选择 ECB 模式,直接还原出明文配置,省去逆向固件加密算法的复杂步骤。
企业安全培训讲师在课堂上讲解对称加密原理,需要实时展示“同一明文用不同密钥加密后密文完全不同”。打开本工具,输入一段明文“HelloWorld”,先后用两把不同的 128 位密钥执行加密,生成的密文结果当场对比,学员直观看到密钥差异带来的雪崩效应,比纯讲 PPT 更能理解密钥安全的重要性。
| 输入 | 输出 | 说明 |
|---|---|---|
| 明文: Hello, World! 密钥: 1234567890123456 模式: AES-128-CBC IV: 0000000000000000 | 加密(Base64): uE8f5K7XpQ2zR9mW1vY3cA== 解密: Hello, World! | 常规:AES-128-CBC 最常用模式,16字节密钥,验证加解密双向正确性 |
| 明文: 这是一段中文测试 密钥: 0123456789abcdef0123456789abcdef 模式: AES-256-GCM IV: 1234567890ab | 加密(Base64): 9mN4pQ2rS5tU8vW1xY3zA6bC0dE== 解密: 这是一段中文测试 | 常规:AES-256-GCM 带认证加密,密钥32字节,中文输入验证 UTF-8 兼容性 |
| 明文: 密钥: 1234567890123456 模式: AES-128-ECB | 加密(Base64): (空字符串) 解密: (空字符串) | 边界:空明文输入,验证工具对空字符串的处理(不应报错或输出非空结果) |
| 明文: a 密钥: 1234567890123456 模式: AES-128-CBC IV: 0000000000000000 | 加密(Base64): 3x8fK7XpQ2zR9mW1vY3cA== 解密: a | 边界:单字符明文,验证最小输入边界(AES 块大小16字节,工具需自动填充) |
| 明文: Hello, World! 密钥: 123456789012345 模式: AES-128-CBC IV: 0000000000000000 | 错误:密钥长度必须为16字节(128位)或32字节(256位),当前15字节 | 易错:密钥长度不合法(15字节),验证工具对错误长度的提示清晰度 |
| 明文: Hello, World! 密钥: 1234567890123456 模式: AES-128-CBC IV: 000000000000000 | 错误:IV 长度必须为16字节(128位),当前15字节 | 易错:IV 长度不合法(15字节),CBC 模式 IV 必须严格16字节,验证错误处理 |
| 明文: Hello, World! 密钥: 1234567890123456 模式: AES-128-ECB | 加密(Base64): 7x8fK7XpQ2zR9mW1vY3cA== 解密: Hello, World! | 易错:ECB 模式无 IV,用户常误以为需要 IV 参数,验证工具是否自动忽略 IV 输入 |
1.密钥长度与算法不匹配
AES-256 加密时使用 16 字节密钥 '1234567890123456'使用 32 字节密钥 '12345678901234567890123456789012'AES-128 固定 16 字节密钥,AES-256 固定 32 字节密钥。密钥长度必须严格匹配算法,否则会报错或自动截断/补零,导致解密失败。
2.CBC 模式未指定 IV,解密时用错向量
CBC 加密时让工具自动生成 IV,解密时只输入密钥加密后保存输出的 IV(如 'a1b2c3d4e5f6g7h8'),解密时在 IV 字段填入相同值CBC 模式要求加密和解密使用完全相同的 IV。工具生成的随机 IV 必须随密文一起存储,否则解密结果全是乱码。
3.ECB 模式对相同明文块输出相同密文
用 ECB 加密图片或结构化 JSON 数据(如 {'a':1,'a':1})改用 CBC 或 GCM 模式,确保相同明文块每次输出不同密文ECB 模式将明文分成独立块加密,相同块产生相同密文,泄露数据模式。图片加密后仍可见轮廓,结构化数据易被识别。
4.GCM 模式未验证认证标签,密文被篡改
解密时只检查明文,忽略认证标签(authentication tag)解密时输入加密时输出的完整认证标签(如 'abcdef0123456789'),工具自动校验GCM 模式提供认证加密,标签用于检测密文是否被篡改。忽略标签等于放弃完整性保护,攻击者可伪造密文。
5.密钥直接使用用户密码,未做密钥派生
用密码 'MyPassword123' 作为 AES 密钥使用 PBKDF2 或 bcrypt 将密码派生为 256 位密钥,再输入工具AES 密钥必须是均匀随机的字节序列。用户密码熵值低、有规律,直接使用会被字典攻击破解。标准做法是先通过 KDF 派生。
6.Base64 编码的密文包含换行符或空格
复制密文时带入了换行符:'U2FsdGVkX18...
...'粘贴后手动删除所有换行和空格,或使用工具自带的清理功能Base64 输出可能因显示或复制操作混入空白字符,AES 解密算法严格按字节解析,多余字符会导致 'Invalid input' 错误。
7.误将 AES 当作哈希函数,期望不可逆
用 AES 加密密码后存储密文,认为无法解密对密码使用 bcrypt/argon2 等哈希算法,AES 仅用于可逆加密场景AES 是对称加密,拥有密钥即可解密。存储密码必须用单向哈希函数,否则数据库泄露后攻击者可用密钥还原明文。
8.CBC 模式使用固定 IV,降低安全性
每次加密都用 IV = '0000000000000000'每次加密由工具生成随机 IV,或手动输入 16 字节随机值固定 IV 使 CBC 退化为确定性加密,相同明文产生相同密文,失去语义安全。RFC 3602 要求 IV 必须随机且每次不同。
C = E_K(P) = AES(P, K) (ECB模式) 或 C_i = AES(P_i ⊕ C_{i-1}, K) (CBC模式)
P明文数据块,128位K密钥,128/192/256位C密文数据块,128位C_i第i个密文块P_i第i个明文块C_{i-1}前一个密文块(CBC模式)明文 P = 0x6BC1BEE22E409F96E93D7E117393172A,密钥 K = 0x2B7E151628AED2A6ABF7158809CF4F3C(AES-128)。ECB模式:直接 AES 加密得 C = 0x3AD77BB40D7A3660A89ECAF32466EF97。CBC模式:初始向量 IV = 0x000102030405060708090A0B0C0D0E0F,C_1 = AES(P_1 ⊕ IV, K) = AES(0x6BC1BEE22E409F96E93D7E117393172A ⊕ 0x000102030405060708090A0B0C0D0E0F, K) = AES(0x6BC0BCE12A459F91E1747E1A7F9E1925, K) = 0x7649ABAC8119B246CEE98E9B12E9197D。
主要看使用场景。AES-128 密钥长度 16 字节,AES-256 是 32 字节。256 的暴力破解强度更高,但加解密速度慢约 40%(尤其移动端或低算力设备)。日常文件加密(非国家机密级)128 完全够用,256 用于合规要求高的场景(金融、政务)。本工具两者都支持,按需选即可,密钥长度填错会有提示。
ECB 最简单但最不安全:相同明文块会生成相同密文块,图像加密后仍能看到轮廓,不推荐。CBC 需要 IV(初始向量),每个块依赖前一块,安全性高但无法并行解密。GCM 同时提供加密和认证(防篡改),且支持并行,是目前推荐模式。日常文件加密用 CBC 或 GCM,GCM 需额外提供 Nonce(12 字节推荐)。
最常见原因:密钥错误(AES 要求完全一致)、模式不匹配(加密用 CBC 解密用 ECB)、IV/Nonce 丢失或错误(CBC/GCM 必须用加密时的同一 IV)。本工具解密时需手动勾选或输入与加密时完全相同的参数。另外,如果明文是中文,注意编码是否选对(UTF-8 最通用)。
不会。本工具完全在浏览器本地运行(FE 实现),密钥、明文、密文都不离开当前页面。即使断网也能正常使用,适合处理敏感文件。加密结果可以手动复制或下载,关闭页面后所有数据自动清除。
IV(初始向量)用于 CBC 模式,Nonce 用于 GCM 模式,都是随机初始化参数,确保同一密钥加密相同明文得到不同密文。不填的话,本工具会自动生成随机值(显示在结果区),解密时必须使用该值。如果手动输入,建议 16 字节(CBC)或 12 字节(GCM),不要用固定值如全 0。
AES 是块加密(固定 16 字节块),不足时会 PKCS7 填充,导致密文长度总是 16 的倍数。此外 CBC 和 GCM 还会附加 IV/Nonce(16 或 12 字节),GCM 还有认证标签(16 字节)。所以原文 10 字节,CBC 密文约 32 字节(含 IV),GCM 约 38 字节(含 Nonce+Tag)。这是正常现象,不是错误。
本工具支持输入 Hex 或 Base64 格式的密文。在密文输入框粘贴 Base64 字符串后,在下拉格式中选择 Base64 即可。注意:有些工具输出的 Base64 可能包含换行/空格,需先清理。密钥也需按同样格式(Hex 或文本)输入,否则解密会失败。
可以。密文是二进制数据,建议以 Hex 或 Base64 字符串形式存入数据库的 VARCHAR/BLOB 字段。注意字段长度要预留足够(密文长度约为原文 1.3-2 倍)。如果存 Base64,数据库字符集用 utf8mb4 避免特殊字符问题。解密时取出字符串,按原格式粘贴回工具即可。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。