“密钥和明文永远不会离开你的页面。”一位开发者重新搭建自己的AES加密演示站时,把这条承诺写在了最显眼的位置。如今打开 aesencryption.net,用户会看到一整套AES-128/192/256加密流程都在浏览器本地完成,待加密的文本与密钥自始至终没有经过网络传输。

这个工具最让人困惑、也最让人好奇的地方在于:它到底如何做到与常见的服务器端加密库完全互通?答案藏在“字节级兼容”这五个字里。模式选择(CBC、ECB)、初始化向量(IV)、分组填充方式(PKCS7)、以及输出Base64的格式,任一环节稍有偏差,加密结果就会对不上。为了绕开这个坑,作者没有只给一份JavaScript实现,而是把PHP、Java、Python、Go、Rust、Kotlin和纯JavaScript七种语言的等效代码片段直接开源了出来。开发者复制粘贴后,就能得到和浏览器一致的结果,不用再为跨语言加解密不一致焦头烂额。

所有的运算都留在本地,意味着用户的密钥和原文不会暴露给任何中间服务。对于需要快速验证AES兼容性、或者想在客户端即席加密的场景,这个思路提供了一种安全的轻量选择。但与此同时,纯前端方案天然面临一些工程上的追问:内存中残留的密钥会不会被其他脚本窃听?侧信道防护如何保障?作者似乎也意识到这一点,在项目说明里坦然邀请外界对加密方案提出反馈——目前尚无公开评论,而这种开放态度本身就构成了一种探索。

把加密的控制权交还给浏览器,本质上是对“数据主权”一次务实的演示。它没有承诺银弹式安全,却用一行行对齐的代码,把客户端加密与后端生态的鸿沟填平了一小截。对于想亲手试试跨栈AES兼容性的开发者,这个免费工具或许正好是个无需安装的起点。