前端加密和nodejs加密的总结以及使用哪些加密方式和加密库的推荐

最近在前端项目和nodejs项目之间遇到了一个加密相关的问题,查了许多资料后发现心里更加迷糊了产生了不少问题比如:前端到底有哪些加密方式呢?一查各式各样的加密方式md5,rsa,aes,base64编码,sha1…等等,究竟该用哪几种呢?有没有相关的库让我去使用呢?一查各种各样的库,也很多如:crypto-js,bcryptjs,jsencrypt等

知识前提

在了解加密方式和加密库之前首先得了解常用的加密类型。

  1. Hash加密算法:一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一地确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。Hash主要用于信息安全领域中加密算法,他把一些不同长度的信息转化成杂乱的128位的编码里,叫做Hash值.也可以说,Hash就是找到一种数据内容和数据存放地址之间的映射关系。了解了Hash基本定义,就不能不提到一些著名的Hash算法,MD5和SHA1可以说是目前应用最广泛的Hash算法,而它们都是以MD4为基础设计的
  2. 对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。
  3. 非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

说结论

1.需要加密防篡改并且不需要解密的情况下用什么方式?
答:md5 、sha256 这类型的加密可以是一种过程不可逆的加密类型,理论上是没办法解开的(实际嘛还是要花功夫,但至少可以挡下99.9%的人嘛)而这两种类型的加密也在前端中使用非常的广泛(大家都在用所以也不用担心什么)。
2.需要加密又需要解密还需要效率高的情况下用什么?
答:AES 加密,这类方式需要后端和前端共用一个私钥,基本上由前端来生成并且给后端
3.需要加密又需要解密还需要安全性高的,但是又不怎么在乎性能的情况下用什么?
答:RSA 加密,这种方式基本上由后端来给公钥,然后我们前端加密一下交给后端即可。如果安全性要更好则可以结合AES一起使用,推荐文章:点击

对于其他类型的加密方式这里就不做总结了,上面这几个无非就是前端最常用也用的最多的加密方式而已,至于其他的比如后端如果提供了其他加密方式,那更好,只需要网上找个对应类型的库引用即可

对于库的推荐:
在使用base64,md5、sha256和 AES 这几种加密方式的情况下完全可以使用 crypto-js 这个库,不用再去考虑其他的了,如果担心库太大了那么可以根据需要使用的加密类型单独引对于的类型的库即可,
如:md5使用md5.js
base64.js使用base64.js
sha256 使用 sha.js
AES 使用 aes-js

在使用rsa加密的时候使用 jsencrypt这个库用的比较舒服,密钥生成

bcryptjs 对于nodejs的开发对密码进行加密保存是比较好用的

最后说个:其实前端加密无论使用哪个加密都一样是有可能性被他人获取到相关的公钥或密钥的(比如拦截请求,查找源代码等),然后进行加密与后端通讯,所以前端加密所谓的安全性还是有限的,最主要的还是在后端。但又说回来,前端加个密它至少也能防止绝大部分人看到明面上的东西,可以防止绝大部分的意外情况,反正也就按个插件调个方法而已,多简单的事。而且前后端都加密这也更加的提高了项目的安全性。

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

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

相关文章

pytest测试报告Allure - 动态生成标题生成功能、添加用例失败截图

一、动态生成标题 默认 allure 报告上的测试用例标题不设置就是用例名称,其可读性不高;当结合 pytest.mark.parametrize 参数化完成数据驱动时,如标题写死,其可读性也不高。 那如果希望标题可以动态的生成,采取的方案…

Hadoop 生态圈及核心组件简介Hadoop|MapRedece|Yarn

文章目录大数据时代HadoopHadoop概述Hadoop特性优点Hadoop国内外应用Hadoop发行版本Hadoop集群整体概述HDFS分布式文件系统传统常见的文件系统数据和元数据HDFS核心属性HDFS简介HDFS shell操作Map Reduce分而治之理解MapReduce思想分布式计算概念MapReduce介绍MapReduce产生背景…

[STM32F103C8T6]DMA

DMA(Direct Memory Access,直接存储器访问) 提供在外设与内存、存储器和存储器、外设 与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU,在这个时间中,CPU对于内存的工作来说就无法使用。 我自己…

JDBC概述三(批处理+事务操作+数据库连接池)

一(批处理) 1.1 批处理简介 批处理,简而言之就是一次性执行多条SQL语句,在一定程度上可以提升执行SQL语句的速率。批处理可以通过使用Java的Statement和PreparedStatement来完成,因为这两个语句提供了用于处理批处理…

BGP策略实验

实验要求: 1、使用PreVa1策略,确保R4通过R2到达192.168.10.0/24 2、使用AS_Path策略,确保R4通过R3到达192.168.11.0/24 3、配置MED策略,确保R4通过R3到达192.168.12.0/24 4、使用Local Preference策略,确保R1通过R2到…

公司新招了个腾讯拿38K的人,让我见识到了什么才是测试天花板···

5年测试,应该是能达到资深测试的水准,即不仅能熟练地开发业务,而且还能熟悉项目开发,测试,调试和发布的流程,而且还应该能全面掌握数据库等方面的技能,如果技能再高些的话,甚至熟悉分…

【失业即将到来?】AI时代会带来失业潮吗?

文章目录前言一、全面拥抱AIGC二、AI正在取代这类行业总结前言 兄弟姐妹们啊,AI时代,说抛弃就抛弃,真的要失业了。 一、全面拥抱AIGC 蓝色光标全面暂停外包? 一份文件截图显示,中国知名4A广告公司,蓝色光…

【GPT4】微软 GPT-4 测试报告(5)与外界环境的交互能力

欢迎关注【youcans的AGI学习笔记】原创作品 微软 GPT-4 测试报告(1)总体介绍 微软 GPT-4 测试报告(2)多模态与跨学科能力 微软 GPT-4 测试报告(3)编程能力 微软 GPT-4 测试报告(4)数…

基于AI分词模型,构建一个简陋的Web应用

文章目录前言1. 效果展示2. 应用设计3. 实现3.1. lac分词模型的服务化部署3.2 使用Flask构建app4. 小结前言 内容纯属个人经验,若有不当或错误之处,还请见谅,欢迎指出。 文中大致介绍了,如何快捷地使用PaddleHub服务化部署一个简…

九龙证券|昨夜,大涨!蔚来5.99%,小鹏15.22%,理想6.39%

当地时间周一,美股三大指数低开高走,尾盘小幅收涨。盘面上,银行股、航空股遍及上涨。 展望本周,包括美联储理事沃勒、鲍曼等官员将迎来下月会议沉默期前的最终说话,投资者需关注其对经济和货币政策前景的看法。此外&am…

如何在TikTok视频描述中提高用户参与度

鑫优尚电子商务:TikTok视频描述(包括话题标签)有150个字符的限制,因此卖家需要合理撰写出有趣且有实际意义的视频描述。可尝试将描述保持在140个字符以内,将最重要的信息放在前面,并通过多次修改文案以排除…

甘特图控件DHTMLX Gantt入门使用教程【引入】:dhtmlxGantt与ASP.NET Core(上)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求,具备完善的甘特图图表库,功能强大,价格便宜,提供丰富而灵活的JavaScript API接口,与各种服务器端技术&am…

【获奖案例巡展】科技向善之星——中航电梯5G+大数据管理平台

为表彰使用大数据、人工智能等基础软件为企业、行业或世界做出杰出贡献和巨大创新的标杆项目,星环科技自2021年推出了“新科技 星力量” 星环科技科技实践案例评选活动,旨在为各行业提供更多的优秀产品案例,彰显技术改变世界的力量&#xff0…

会话跟踪技术

目录 Cookie基本使用 Cookie原理 Cookie使用细节 Session基本使用 Session原理 Session使用细节 案例 用户登录注册案例 用户注册功能 保存用户信息到数据库 验证码-展示 验证码-校验 会话跟踪技术的概述 会话:用户打开浏览器,访问web服务器的资源&…

ssm框架之SpringMVC:浅聊获得参数以及获得请求头参数

前面聊过了SpringMVC,以及通过实例演示了SpringMVC如何搭建,如果对环境搭建不太了解的话,可以看一下前面的文章(下面演示的例子,环境都是通过上面的例子进行演示的):传送阵 在使用javaweb项目原…

图解PMP项目管理马斯洛需求层次理论在公司管理中的应用!

马斯洛的需求层次结构是心理学中的激励理论,包括人类需求的五级模型,通常被描绘成金字塔内的等级。 从层次结构的底部向上,需求分别为:生理(食物和衣服),安全(工作保障)…

stm32下载代码到单片机上需要调节BOOT为什么模式

一、BOOT模式选择图解 二、BOOT模式介绍 所谓启动,一般来说就是指下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。 A. Mai…

MongoDB 聚合管道中使用数组表达式运算符合并数组($concatArrays)

数组表达式运算符主要用于文档中数组的操作,接上一篇:MongoDB 聚合管道中使用数组表达式运算符($slice截取数组)https://blog.csdn.net/m1729339749/article/details/130130328本篇我们主要介绍数组表达式运算符中用于合并数组的操…

LMKD分享

背景 Android是一个多任务系统,可以同时运行多个程序,一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程…

【论文阅读】3D-LaneNet

【论文阅读】3D-LaneNet 主要要做的事情就是 lane detection。这里提一下 BEV(Bird‘s Eye View) 感知算法,为了将 2D 图像映射到 3D 空间中,能够更准确的检测物体位置,需要 BEV 感知的结果。后续还会继续了解这方面内…