.env 加密.Env Encryptor
在浏览器里用 AES-256-GCM 加密 .env 敏感变量,注释与结构原样保留,支持一键解密还原。口令与文件内容全程不上传。
工具介绍
3 段详细说明.env 加密是面向开发者的一站式环境变量加密工具,集AES-256-GCM 加密、一键解密、结构保留三大能力于一体。把 .env 文件粘贴进来,输入口令,敏感值(数据库密码、API Key、JWT 密钥)立即变成 ENC[...] 密文,可以放心提交到私有仓库、同步给团队或备份到云盘。
所有加解密都在浏览器内存中完成,口令与文件内容不上传任何服务器。基于浏览器原生 Web Crypto API:AES-256-GCM 认证加密 + PBKDF2(SHA-256 · 10 万次迭代)口令派生,加密强度与 openssl 同级。
输出完整保留原文件的注释、空行、键名与顺序,只有值被替换为自描述的 ENC[AES256-GCM,...] 信封,解密时能 1:1 还原。配合密码管理器管理口令,配置管理与代码版本管理即可安全合流。
基础知识 · .env 与 AES-256-GCM
Web Crypto · 信封格式.env 是最普及的环境变量约定(dotenv 生态),但它的安全性完全取决于文件里的值是否泄露。本工具的思路是值级加密:只动值、不动结构,用浏览器原生 Web Crypto 完成以下 4 步:
.env syntax.env 基本语法KEY=value,以 # 开头的是注释,空行会被忽略,export KEY=value 前缀写法也兼容(shell 直接 source 场景)。键名建议全大写 + 下划线。why encrypt为什么值要加密AES-256-GCM认证加密算法AES-256 是当前主流对称加密标准,256 位密钥无已知实用攻击;GCM 模式额外附加认证标签(Auth Tag),密文被改动哪怕 1 位,解密时都会直接报错拒绝,天然防篡改。PBKDF2口令派生密钥PBKDF2 把口令与随机 salt 喂进10 万次SHA-256 迭代,输出 256 位密钥。攻击者每试一个口令都要付 10 万次哈希的成本,逐个试错被大幅拖慢。random IV随机盐与随机 IVenvelope自描述信封格式ENC[AES256-GCM,...] 信封形式写回原位置:以 ENC[ 开头即可被程序识别,salt / iv / data 全部内嵌,解密时不需要携带任何额外参数;注释、键名、顺序原样保留,diff 友好。salt:xxxx —— 16 字节随机盐,参与 PBKDF2 口令派生(每次加密独立生成)。iv:xxxx —— 12 字节随机初始向量,GCM 模式必需,同一密钥绝不重用。data:xxxx —— 密文本体,末尾 16 字节是 GCM 认证标签,解密时自动校验完整性。使用说明
4 步快速入门使用场景
5 个真实案例值变成密文后入库,即使仓库泄露也不会暴露数据库密码;口令存进密码管理器,与代码分离。
把加密后的 .env 发到群里不怕被翻记录,口令私聊或当面告知,新人拉配置即可解密还原。
云盘、网盘里只存密文版 .env,换电脑时下载后用口令解密,敏感凭据不落明文。
流水线把密文版随代码检出,构建阶段用密钥解密后注入环境变量,凭据不写进流水线变量明文。
成员离职时解密 → 换新口令重新加密 → 更新仓库,旧的口令立即失效,无需逐台机器改配置。
常见问题
10 个问答.env 加密是什么?有什么用?
把 .env 文件里的敏感值(数据库密码、API Key、JWT 密钥等)用 AES-256-GCM 加密成 ENC[...] 信封,注释、键名、顺序原样保留;需要时用同一口令一键解密还原,方便安全地提交、分发和备份配置。
我的口令和 .env 内容会上传到服务器吗?
不会。所有加解密都在浏览器内存中通过原生 Web Crypto API 完成,口令、明文、密文均不上传。可断网使用,关闭网络后再打开仍能正常工作。
忘记口令能找回吗?
不能。AES-256 没有后门,口令错误时解密会直接失败(GCM 认证标签对不上)。请务必把口令存入密码管理器或离线妥善保管,这是安全性的前提。
输出的信封格式是什么?
ENC[AES256-GCM,salt:Base64,iv:Base64,data:Base64]。salt(16 字节)用于口令派生,iv(12 字节)用于 GCM 加密,data 是密文+认证标签。信封自描述,解密时无需额外参数。
与 ansible-vault / SOPS 兼容吗?
思路类似(值级加密、结构保留)但格式互不兼容。本工具面向个人与中小团队场景,零依赖、网页即用;已用 ansible-vault / SOPS 管理的配置请继续用原工具,避免混用。
引号和特殊字符会被加密吗?
会。等号右侧的整段内容(含引号、空格、内联注释)都作为值整体加密,解密时 1:1 还原,无需关心值的原始格式。
已经是 ENC[...] 的值重复加密会怎样?
自动跳过,不会二次包裹。所以「示例 → 执行 → 再执行」结果一致;解密时也只还原信封值,普通键值对原样保留。
为什么同一内容每次加密结果都不一样?
正常现象。每次加密都使用随机 salt 和随机 IV,同一明文每次产生不同密文,安全性反而更高(防止通过密文相似度推断明文关系)。
加密强度如何?能扛暴力破解吗?
密钥是 256 位 AES-GCM,当前算力下无法暴力破译密钥本身;口令是相对薄弱的一环,PBKDF2(SHA-256 · 10 万次迭代)会大幅拉高逐个试错的成本,建议使用长随机口令进一步加固。
支持多行值 / 移动端 / 离线吗?
多行值不支持(.env 本身以行为单位),请先 Base64 压成单行再加密。移动端输入/输出自动垂直堆叠;PWA 已上线,首次访问后断网仍可使用。
相关工具
开发者分类数据来源
隐私优先Web Crypto API,AES-256-GCM 认证加密,口令经 PBKDF2(SHA-256 · 100,000 次迭代)派生密钥。随机数来自密码学安全随机源 crypto.getRandomValues,无任何第三方依赖。