npm 包 envenc 使用教程

阅读时长 5 分钟读完

环境变量常常用来存储应用程序需要访问的重要信息,例如 API 密钥等敏感信息。而一般来讲,我们通常需要在将代码上线前将敏感信息加密处理,以免泄露,同时也要以易于使用和管理的方式解密这些值。在这篇文章中,我们将介绍如何使用 npm 包 envenc 来轻松地对敏感信息进行加密和解密。

环境变量加密的必要性

假设我们的应用程序需要访问一个名为 SECRET_API_KEY 的敏感信息,我们可以用以下方法来访问它:

然而,如果我们将这个应用程序部署到生产环境中,并且还没有对这个值进行加密,那么任何人都可以通过查看应用程序的源代码来获得这个敏感信息。这会导致严重的安全问题。

因此,我们需要将敏感信息加密处理,以便只有被授权的人可以查看和使用这个值。这也就是使用 npm 包 envenc 的原因了。接下来,就让我们看看如何使用它。

envenc 的安装和基本使用

首先,我们需要在代码仓库中安装 envenc:

安装完成后,我们需要设置一个约定,以便使用 envenc 对我们的敏感信息进行加密处理。具体地,我们需要将所有敏感信息存储在形如 ENCRYPTED_<KEY_NAME> 的环境变量中,其中 KEY_NAME 是敏感信息的名称。

例如,要对 SECRET_API_KEY 进行加密,我们可以使用以下命令:

请注意,这个命令会将值 mysecret 加密,并将结果存储在环境变量 ENCRYPTED_SECRET_API_KEY 中。这意味着我们在代码中就可以使用以下方法访问这个值:

接下来,我们需要在项目中安装 dotenv,以便将加密后的值解密,并将它们设置为环境变量的值。我们可以使用以下方法安装 dotenv:

详细介绍如下:

-- -------------------- ---- -------
- ---------------
- ------------------------------- -- ---------- - -------

- --------- -------- ------------
- ---- ---------------------------------------------------- - -----------------

- ----------- ------
-------------------------- ----- --------------- --

- ---------- ----------- -
----- ---------- - -------------------------- ----------- ---- --
------------
------------------------------- ---------------------------

这些代码片段基本上完成了使用 npm 包 envenc 的全部步骤。从安装到解密环境变量,它们概括了如何使用 envenc 进行加密和解密。

envenc 的高级功能

除了基本的加密和解密功能外,envenc 还提供了许多高级功能。以下是一些最有用的功能:

自定义加密方式

默认情况下,envenc 使用 AES-256-CBC 对敏感信息进行加密。但是,您可以通过传递 --encryptor 标志来选择其他加密算法,例如 AES-128-CBC。

加解密预处理

有时候,我们需要在加密之前对值进行处理,或者在解密之后对值进行后处理。envenc 允许您使用预处理和后处理函数来实现这些功能。例如,要将加密值转换为 Base64,我们可以使用以下命令:

这条命令将使用 AES-128-CBC 进行加密,并在加密之前和解密之后将值转换为 Base64 编码。

加密 Key 的私钥管理

默认情况下,envenc 将使用由操作系统生成随机数作为加密的 Key。但是,为了更好地管理密钥,我们还可以使用自己的私钥进行加密。

在使用自己的私钥加密之前,您需要使用 envenc-keygen 命令生成新的私钥。例如:

-- -------------------- ---- -------
- -------------
------- ----
  ---------- --------- ------- --------
  ----------------------------------------------------------------
  ----------------------------------------------------------------
  ----------------------------------------------------------------
  --------------------------------
  -------- --------- ------- --------

------ ----
  ---------- ------ --------
  ---------------------------------------------------------------
  ------------------------------------------------------------
  -------- ------ --------

这个命令将生成一个公钥和一个私钥。请注意,私钥是加密和解密敏感信息所必需的。因此,您应该妥善保管私钥。

结语

通过本篇文章,我们了解了如何在前端应用程序中使用 npm 包 envenc 进行环境变量加密和解密。总体来说,envenc 提供了一个简单而有效地解决方案,以保护我们的敏感信息,它的高级功能也为我们提供了更加灵活和个性化的选项。

希望本篇文章能够帮助诸位开发者加强应用程序的安全性,提升应用程序的质量和稳定性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e25a563576b7b1ecef9

纠错
反馈