在线AES加密解密

在线AES加密解密工具

AES 编码 AES 解码 复制结果

关于AES加密解密

输入文本和口令,点加密,得到一串 Base64。解码用同一个口令反向操作。

内部走的是 CryptoJS 的口令模式:AES-256、CBC、PKCS7 填充,密钥用 OpenSSL 兼容的 EVP_BytesToKey 从口令派生。每条消息的盐都是随机的,放在密文最前面,所以同样的文本和口令,每次加密出来的结果都不一样。

兼容性是这个工具最有用的地方:输出能被 openssl、PHP、以及各种仿 OpenSSL 的 Java 工具解开,只要派生方式一致。

适合用来做什么

给一段要转交的笔记加密,或者验证后端生成的密文到底能不能解开。它更像调试工具,不是保险箱。

不适合做什么

不能替代真正的加密实现,口令也没有做拉伸。在这里敲四个普通单词当口令,攻击者离线爆破的成本不高。另外它没有认证——AES-CBC 不带 MAC 可以被悄悄改动,解密时不会报错,只会返回一段垃圾。

真要保护重要数据,用专门的工具:age、gpg,或者你所用语言的 libsodium 绑定。

常见问题

这是 AES-256 吗?

是 AES-256-CBC。注意密钥不是口令本身,中间要过一遍 EVP_BytesToKey,用的是单轮 MD5。

为什么每次加密结果都不一样?

每次都会生成随机盐,存在密文最前面。同样的输入得到不同输出,但两种都能正确解回来。

能用 openssl 解开吗?

通常可以:openssl enc -d -aes-256-cbc -a -pass pass:你的口令。格式和密钥派生都按 OpenSSL 的约定来,所以能通。

口令要多强才够?

比你以为的要强,因为口令没有做拉伸。16 位随机字符比较稳,一个词典词不行。

同类工具

编码解码 查看全部 ›