npm 包 envenc 使用教程

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

环境变量常常用来存储应用程序需要访问的重要信息,例如 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


猜你喜欢

  • npm 包 keycode-cli 使用教程

    在前端开发中,键盘事件处理是非常常见的,而 keycode 是用于标识键盘按键的数字编码,不同按键拥有不同的 keycode。如果你想要进行键盘事件的处理,就需要知道每个按键的 keycode。

    4 年前
  • npm 包 keycode.js 使用教程

    在前端开发中,我们经常会需要获取用户在页面中按下的键盘按键的信息,以便进行相应的操作。而这时候,一个方便的工具就是 keycode.js 这个 npm 包。本文将介绍 keycode.js 的使用教程...

    4 年前
  • npm 包 keycoder 使用教程

    在前端开发中,我们常常需要处理键盘事件。而处理键盘事件时,我们需要使用一些键盘键码(keycode)值。相信许多前端开发者都知道,在不同的浏览器中,同一个键的键码可能会不同。

    4 年前
  • npm 包 keycodes-enum 使用教程

    在前端开发中,我们经常需要监听用户的按键操作,例如回车键、方向键、数字键等等。而这些按键都有各自的 ASCII 码值,为了方便我们在代码中使用这些按键,有一个 npm 包可以帮助我们将按键码值进行枚举...

    4 年前
  • npm 包 keycodez 使用教程

    在前端开发过程中,我们经常需要处理用户输入的按键事件。这时候就需要用到 keycodez 这个 npm 包。 keycodez 可以将按键代码转换为对应的键名,方便开发者处理按键事件。

    4 年前
  • npm 包 keycomb 使用教程

    前言 作为前端工程师,我们需要掌握各种工具和技能来提高开发效率和开发质量。其中,使用 npm 包是必不可少的一个环节,因为 npm 包不仅提供了大量的现成工具,而且可以让我们更方便地分享和复用代码。

    4 年前
  • npm 包 keycloak-js-eq 使用教程

    前言 在前端开发中,认证和授权是一个重要的部分,我们需要确保用户的数据安全。Keycloak 是一个开源的身份认证管理系统,它支持 OpenID Connect 和 SAML 等协议。

    4 年前
  • npm 包 keydown-with-event 使用教程

    在前端开发中,我们经常需要监听键盘事件来完成一些特定的操作,例如监听回车键的触发事件,在输入框中提交表单,或者监听 ESC 键的触发事件,在用户按下 ESC 键后隐藏弹窗。

    4 年前
  • npm 包 keydupl 使用教程

    Web 应用程序通常需要处理用户输入,包括按键操作。有时,我们需要监听按键事件并执行对应的操作。但是,在某些情况下,用户可能会重复按同一个键,从而导致问题。这时,我们需要一种方法来避免处理重复按键事件...

    4 年前
  • npm 包 keyconfig 使用教程

    简介 在日常前端开发中,我们经常需要实现按键绑定功能。但是,实现按键绑定功能并不是一件简单的事情,需要考虑的问题很多。为了解决这个问题,我们可以使用一个叫做 keyconfig 的 npm 包来帮助我...

    4 年前
  • npm 包 keyczarjs 使用教程

    在前端开发中,加密和解密是非常常见的问题。KeyczarJS 是一个 JavaScript 库,可以帮助我们轻松地进行加密和解密操作。本文将介绍如何使用 keyczarjs 进行加密和解密的操作。

    4 年前
  • npm 包 kev-redis 使用教程

    在前端开发中,使用 Redis 是很常见的。而 kev-redis 是一个方便快捷使用 Redis 的 npm 包。本文将详细介绍 kev-redis 的使用方法,包括环境搭建和示例代码。

    4 年前
  • npm包 kevas 使用教程

    介绍 kevas 是一个基于 SVG 的库,它能够让你快速的创建动画,它利用类似 CSS 动画的方式去编辑路径动画,并应用于 SVG 中。使用 kevas,你可以优雅的提供更优秀的动画效果,它的接口也...

    4 年前
  • npm 包 kevbook.node-logger 使用教程

    介绍 kevbook.node-logger 是一种用于 Node.js 的轻量级日志管理器。它非常容易使用,支持分类日志记录和高级日志过滤。在本文中,我们将详细介绍如何使用这个 npm 包进行日志处...

    4 年前
  • npm 包 kevin_luan 使用教程

    什么是 npm 包 kevin_luan? npm 包 kevin_luan 是一款前端开发专用的工具包,主要包含了常用的工具函数和样式库,可以帮助前端开发人员加快开发速度,提高开发效率。

    4 年前
  • npm 包 @campus-online/gatsby-source-git 使用教程

    前言 在进行前端工作的过程中,我们难免会用到一些第三方的工具包或者库。这时候,npm 包就变得非常必要。 今天我要介绍的是一个针对 Gatsby 网站开发框架的 npm 包: @campus-onli...

    4 年前
  • npm 包 eos-service 使用教程

    在前端的开发过程中,我们经常需要与后端进行数据交互。EOS.IO是一种新型的区块链技术,在区块链应用中被广泛应用。本文将介绍如何使用npm 包 eos-service 进行EOS.IO的网络交互操作。

    4 年前
  • npm 包 @dbmdz/mirador-canvaslink 使用教程

    简介 在前端开发中,我们经常使用 npm 来安装和管理包。其中,@dbmdz/mirador-canvaslink 是一个非常实用的 npm 包,它提供了一个可以在多个 Mirador 框架实例之间同...

    4 年前
  • npm 包 @dbmdz/mirador-imagecropper 使用教程

    简介 今天我们要介绍一个前端开发中常用的 npm 包:@dbmdz/mirador-imagecropper。这个包可以帮助开发者在 Mirador 聚合展示器中对图片进行裁剪。

    4 年前
  • npm包@dbmdz/mirador-multipagenavigation使用教程

    Mirador是一款开源的图像阅读器,它允许用户以更直观,更易于使用的方式查看和比较多幅图像。在Mirador中,@dbmdz/mirador-multipagenavigation是用于多页面展示的...

    4 年前

相关推荐

    暂无文章