使用CryptoJs对开发中的参数进行加密

场景描述

在开发程序中,我们无时无刻不在接受第三方的一些token,比如我们申请了地图软件的一些定位、导航功能,第三方会给予我们appid还有app secret作为访问他们服务的凭证,大部分时候我们会将求这些登陆凭证放在env文件中,不会直接Hard-Code,但是你是否觉得这样就安全了呢?

一般我们将数据放在env中,但是我们为了放置一些特别情况的出现,比如不小心这份env文件泄露出去了,这样别人就可以登陆到我们的账号,偷窃我们的服务,所以我们会使用第三方加密工具,以便保护我么不能的数据安全。更何况在很多时候,你的密钥之类无法放置在env文件中,此时你更需要对其进行加密。

使用CryptoJs

JavaScript library of crypto standards.

加密工具类有千千万,选用CryptoJs的最大原因是背靠谷歌,使用的人多。

目前crypto-js已支持的算法有:MD5、SHA-1、SHA-256、AES、RSA、Rabbit、MARC4、HMAC、HMAC-MD5、HMAC-SHA1、HMAC-SHA256、PBKDF2等。使用时可以引用总文件,也可以单独引用某一文件。

首先安装下面指令安装该工具类

npm install crypto-js

安装成功之后,我们可以直接在项目中使用了。
下面会做一个最简单的例子,简单的介绍加密以及解密。

简单的加解密​

接下来的代码实例较为简单,所以就不做分步讲解了。

需要注意的是,我们需要准备一个加密的密钥。
以AES的加解密为例,我们先准备一个密钥,一般我会将密钥放在​env文件里面,方便修改。

const SECRET_KEY = process.env.ENCRYPT_KEY;

当我们需要加密的时候,可以这么设置

const encryData=CryptoJS.AES.encrypt(
  'WQXMdFKB7rEPFrDrrZJn', 
  SECRET_KEY)
.toString();

解密较为麻烦,需要注意的是我们要uft8的转化

const decryData= CryptoJS.AES.decrypt(
  process.env.POSTGRES_PASSWORD, 
  SECRET_KEY)
.toString(CryptoJS.enc.Utf8),

在这里插入图片描述

添加链接描述
个人博客~求关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/456477.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp发行H5获取当前页面query

阅读uni的文档大致可得通过 onLoad与 onShow()的形参都能获取页面传递的参数,例如在开发时鼠标移动到方法上可以看到此方法的简短介绍 实际这里说的是打开当前页面的参数,在小程序端的时候测试并无问题,但是发行到H5时首页加载会造成参数获取…

怎样基于“用户”思维让内容营销更有效

当下互联网流量见顶,内容已经成为互联网竞争新的制高点,可以说在数字化驱动的新时代下,“内容为王”仍然是真理。然后信息泛滥的时代下,如何让内容营销脱颖而出呢?媒介盒子认为“用户思维”是关键,今天就和…

C/C++中strcpy,strcat,strstr以及strncpy,strncat,strncmp的使用

1、首先我们来介绍strcpy的使用从这个函数的名字来看它应该是属于字符串的拷贝,string copy。 那么这个函数是怎么用的呢?下面我么来介绍她的基本结构。 char * strcpy ( char * destination, const char * source );由上述可知它需要两部分 一个是目标字…

操作系统——进程

1.什么是进程 概念: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的一个独立单位。 进程是程序的依次执行 进程是一个程序及其数据在处理机上顺序执行时所发生的活动 进程是程序在一个数据集合上运行的过…

[剪藏] - 由哇哈哈和农夫山泉所想到的

哇哈哈和农夫山泉的缠斗最近冒出来一个有趣的点:营销大于内容的胜利。 具体来说是这样的:农夫山泉很多年前做广告,说纯净水没有矿物质,长期喝是不利于人体健康的。农夫还做了个营销的对比实验,大概是用矿泉水养水仙花&…

CMDB在IT管理中的重要性

Configuration Management Database(CMDB)即配置管理数据库,在当前企业的IT运维管理中扮演着重要的角色。CMDB是一个包含了企业所有设备、软件和服务配置信息的中心数据库,通过有效地管理这些配置数据,能够为企业提供全…

AIX7.2下安装mysql5.1.73数据库

首先需要现在AIX版本的mysql安装包以及相关的依赖包 依赖关系deps文件下载地址: Index of /download/rpmdb/deplists/aix72 对应的rpm包下载地址: Index of /download/everything/RPMS 我们需要下载的mysql安装包主要有 mysql-5.1.73-1.ppc mysql…

WanAndroid(鸿蒙版)开发的第五篇

前言 DevEco Studio版本:4.0.0.600 WanAndroid的API链接:玩Android 开放API-玩Android - wanandroid.com 其他篇文章参考: 1、WanAndroid(鸿蒙版)开发的第一篇 2、WanAndroid(鸿蒙版)开发的第二篇 3、WanAndroid(鸿蒙版)开发的第三篇 …

SpringBoot(接受参数相关注解)

文章目录 1.基本介绍2.PathVariable 路径参数获取信息1.代码实例1.index.html2.ParameterController.java3.测试 2.细节说明 3.RequestHeader 请求头获取信息1.代码实例1.index.html2.ParameterController.java3.测试 2.细节说明 4.RequestParameter 请求获取参数信息1.代码实例…

PMP成绩判定标准是什么?

2024年3月10日的PMP考试已经结束,不知道大家考得怎么样,对于考试难度有没有值得分享或者吐槽的?可以发出来大家交流一下~ 一、3月PMP考试成绩什么时候出? 按照往期考试成绩发布时间,基本在考后6-8周会出成绩&#xf…

扩展资料主机名到IP地址的有两种方式:DNS

中国联通的DNS地址有两种。 主 DNS 为“210.21.4.130”,备用 DNS 为“221.5.88.88”。 每个 IP 地址可以有一个主机名。 主机名由一串或多串字符组成。 用小数点分隔字符串。 对于中国联通宽带用户,主DNS设置为:210.21.4.130,备用…

最好的五款骨传导耳机推荐,揭秘几大骨传导耳机选购技巧

骨传导耳机以健康听音的优势,近年来迅速赢得了市场的青睐,并成为蓝牙耳机领域的热门选择。随着其受欢迎程度的提升,市场上也出现了一些质量很差的产品,这些产品音质不佳、佩戴不舒适,甚至可能对用户的听力造成潜在风险…

Python实现BOA蝴蝶优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

权限管理系统-0.4.1

5.4 权限管理前端开发 5.4.1 src/components 新建ParentView文件夹&#xff0c;并在文件夹中新建index.vue文件。 并在index.vue中加入以下内容&#xff1a; <template><router-view /> </template>5.4.2 layout/components/Sidebar/index.vue routes() …

潜水耳机哪个牌子好?潜水党必看的游泳耳机专业性能详解!

在游泳、潜水等水上活动中&#xff0c;一个好的耳机可以让你更加享受水中的乐趣。而随着科技的不断发展&#xff0c;市面上涌现了越来越多的游泳耳机品牌和型号&#xff0c;让人眼花缭乱。 &#xff08;以下是之前测试过的游泳耳机&#xff1a;&#xff09; 那么&#xff0c;潜…

从零开始搭建医保购药APP:技术选择与开发流程

医保购药APP作为一种创新的医疗服务工具&#xff0c;为用户提供了便捷的医保购药流程&#xff0c;同时也为医疗机构提供了更高效的管理和服务方式。今天小编将为大家讲解如何从零开始搭建一款医保购药APP&#xff0c;包括技术选择和开发流程。 一、技术选择 在搭建医保购药APP…

python面向对象的三大特性:封装,继承,多态

1、面向对象有哪些特性 三种&#xff1a;封装性、继承性、多态性 2、Python中的封装 在Python代码中&#xff0c;封装有两层含义&#xff1a; ① 把现实世界中的主体中的属性和方法书写到类的里面的操作即为封装 ② 封装可以为属性和方法添加为私有权限&#xff0c;不能直…

【C++练级之路】【Lv.13】多态(你真的了解虚函数和虚函数表吗?)

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C语言》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 一、虚函数与重写1.1 虚函数1.2 虚函数的重写1.3 重写的特例1.4 final和override&#xff08;C11&#xff09;1.…

【ROS+amcl+Movebase】多机器人导航

学过单机器人在已知地图中的导航后&#xff0c;想到如果有多个机器人在同一地图如何导航&#xff0c;于是在网上学习了下&#xff0c;主流方案即在单机器人导航的基础上引入命名空间。 参考文章1 参考文章2 参考文章3 一、实验环境 Ubuntu1804&#xff08;虚拟机&#xff09;…

VSCode+python单步调试库代码

VSCodepython单步调试库代码 随着VSCode版本迭代更新&#xff0c;在最新的1.87.x中&#xff0c;使用Python Debugger扩展进行调试时&#xff0c;扩展的justMyCode默认属性为true&#xff0c;不会进入库中的代码。这对debug而言不太方便&#xff0c;因此需要手动设置一下&#…