前言
在开发过程中,我们常常会需要使用一些敏感的“环境变量”,如 API Key、Token、密钥等等,而我们不希望这些变量泄露出去。为了解决这个问题,我们可以使用 encrypt-env
这个 npm 包将我们的敏感变量加密,从而保护它们的安全性。
什么是 encrypt-env
encrypt-env
是一个 npm 包,它可以将我们的“环境变量”加密,并保存在一个 .env
文件中。我们可以在代码中读取这些加密后的变量,从而保证敏感变量的安全。
如何使用 encrypt-env
下面是使用 encrypt-env 的详细步骤:
第一步:安装 encrypt-env
npm install encrypt-env
第二步:生成密钥
在使用 encrypt-env
之前,我们需要先生成一个密钥。我们可以使用 encrypt-env
提供的命令行工具 encrypt-env-keygen
来生成密钥:
npx encrypt-env-keygen
执行上述命令后,你会看到一个 64 位的密钥,将其复制下来,我们稍后会用到。
第三步:加密环境变量
我们需要在一个 .env
文件中保存我们的敏感变量,如下所示:
API_KEY=xxxxxxxxxx TOKEN=yyyyyyyyyy
现在,我们可以使用 encrypt-env
来加密这些敏感变量:
npx encrypt-env encrypt .env <密钥>
其中 <密钥>
就是我们上一步生成的密钥。执行上述命令后,你会看到如下所示的输出:
Encrypting file '.env' with key '<密钥>'... Encrypted output written to '.env.enc'.
现在,我们的 .env
文件中的变量已经被加密了,并保存在 .env.enc
文件中。
第四步:读取加密后的变量
我们可以使用 encrypt-env
来读取加密后的变量:
const env = require('encrypt-env').default; const decrypted = env.decrypt('.env.enc', '<密钥>'); console.log(decrypted.API_KEY); console.log(decrypted.TOKEN);
其中 <密钥>
就是我们上一步生成的密钥。执行上述代码后,我们可以看到加密前的敏感变量被成功解密了。
示例代码
下面是一个完整的可以使用 encrypt-env
加密和读取敏感变量的代码示例:
-- -------------------- ---- ------- -- -------- ----- --- - ------------------------------- ----- -- - -------------- -- ------ ----- --- - ------------------------------------------------------------------- ----- --------- - ------------------- ----- ----- ---------------- - --------------------- ------------------------ ----------------- -- -- - --------------------- ---- ---------- --- -- -------- ----- --------- - ----------------------- ----- -----------------------
总结
使用 encrypt-env
可以保护我们的敏感变量不被泄露出去,从而提高我们代码的安全性。虽然这并不能完全防止黑客攻击,但至少我们可以做到尽我们所能去保护我们的代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e20a563576b7b1ecdef