jsencrypt实现前端rsa非对称加密解密(vue项目)

author author     2023-04-15     456

关键词:

参考技术A

最近一个vue项目要求所有密码数据需要使用RSA非对称加密传输,以为挺简单,结果开发过程中还是遇到了些问题,简单做个笔记。同时也希望可以帮助到遇到同样问题的道友门。

重点来了:使用jsencrypt实现RSA非对称加解密
因为这里直接在前端加解密,所以需要一对现成的密钥,我们通过 密钥在线生成器 得到:

然后在需要使用的文件中引入JSEncrypt,我是将所有工具函数都封装在一个js文件的,我就直接在该文件中引入,我看也有人是在main.js中引入的。

到这里我们的加密解密方法就完成了,在需要的地方直接拿过来用就好了!

大功告成!这样就完了?我以为这样就ok了。

当然,如果没有遇到这个bug,就可以忽略下面的内容了。
从上面截图可以看到,重启项目的时候报错: navigator is not defined
而且这个bug有点奇葩,先启动项目再引入jsencrypt就什么问题都没有,但是先引入jsencrypt再启动项目就报错。这也是我前面能顺利执行的原因所在。
通过好一通折腾,用了网上的各种方法,比如在main.js引入jsencrypt、引入jsdom之类的,都没能解决这个问题,最终还是在jsencrypt的git相关 issue 下找到了这个问题的解决方案。

到这里问题就算基本解决了,但是由于项目组不止我一个前端,我不能要求每个同事或者以后接手维护项目的同事都要在node_modules中去替换文件。
所以就采用了另外一种方案:将jsencrypt.js通过在线js压缩器压缩至jsencrypt.min.js中,然后把jsencrypt.min.js放到src/assets/jsencrypt文件夹中,就不用npm install的方式了。
换了种方式,jsencrypt的引用方式需要做出相应的调整:

参考链接: RSA非对称加密传输---前端加密&解密(VUE项目)
https://github.com/travist/jsencrypt/issues/144
PS:才疏学浅,如果有考虑不周之处或者有更好的解决方案,欢迎指正探讨!

jsencrypt.js加密java后端解密(代码片段)

文章目录1.什么是RSA?2.RSA算法2.1生成公钥和私钥2.2使用公钥加密信息2.3使用私钥解密信息4.RSA的应用:数字签名5.RSA的安全性6.为什么要写这文章?7.前端代码8.后端代码1.什么是RSA?计算机中常用的加密技术分为两... 查看详情

jsencrypt.js加密java后端解密(代码片段)

文章目录1.什么是RSA?2.RSA算法2.1生成公钥和私钥2.2使用公钥加密信息2.3使用私钥解密信息4.RSA的应用:数字签名5.RSA的安全性6.为什么要写这文章?7.前端代码8.后端代码1.什么是RSA?计算机中常用的加密技术分为两... 查看详情

netcore下使用rsa加密,解密;并且前端使用jsencrypt.js实现rsa相关方法。

首先上资源jsencrypt.js下载地址:https://github.com/travist/jsencrypt第三方Rsa密钥生成工具:BouncyCastle.Crypto.dll,直接可以在NuGet中查找。至于为什么用第三方工具生成密钥,是为了和jsencrypt配合。c#本身RSACryptoServiceProvider类生成的工具不... 查看详情

使用jsencrypt加密解密(代码片段)

最近项目中使用非对称加密JSEncrypt。uni-app中先安装第三方npm包jsencryptutil文件夹下新建一个jsencrypt.js文件1importJSEncryptfrom\'jsencrypt/bin/jsencrypt.min\'//引入非对称RSA加密工具23//密钥对生成http://web.chacuo.net/netrsakeypair45constpublicKey 查看详情

(转)c#实现rsa非对称加密解密

转自:http://blog.csdn.net/u010678947/article/details/48652875一、RSA简介RSA公钥加密算法是1977年由RonRivest、AdiShamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够... 查看详情

uniapp接口层的aes和rsa的对称与非对称加密(代码片段)

...具-UU在线工具aes加密需要依赖 crypto-jsrsa加密需要依赖 jsencrypt 1、在uniapp项目中新建终端,初始化 查看详情

非对称加密rsa的c#实现

1.对称加密算法对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secretkey)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密... 查看详情

rsa加密算法,前后端实现。

前端js:  下载地址:http://travistidwell.com/jsencrypt/js第一版本:1//对数据加密2functionencrypt(enStr){3//没有加载jsencrypt.js4if(typeof(JSEncrypt)!="function"){5returnenStr;6}7if(!window.rsa){8window.rsa=newJSEncrypt();9 查看详情

go语言实现对称加密算法aesdes3des和非对称加密算法rsa(代码片段)

目录1.对称加密算法1.1特点1.2优缺点1.3go语言实现对称加密算法1.3.1AES1.3.2DES1.3.3DES(CBC模式)2.非对称加密算法2.1特点2.2优缺点2.3go语言实现非对称加密算法2.3.1RSA最后1.对称加密算法1.1特点加密和解密使用的是同一个密钥,数据... 查看详情

jdk自带方法实现rsa非对称加密(代码片段)

1packagejdbc.pro.lin;23importjava.security.InvalidKeyException;4importjava.security.Key;5importjava.security.KeyFactory;6importjava.security.KeyPair;7importjava.security.KeyPairGenerator;8importjava.s 查看详情

非对称加密算法-rsa算法

??加密算法分为对称加密算法和非对称加密算法,其中非对称加密算法作为计算机通信安全的基石,在保证数据安全方面起着重要的作用。而相对于对称加密算法的易理解性,非对称加密算法存在一定的难度。下面通过对RSA算法... 查看详情

javascript实现rsa加解密(代码片段)

  在GitHub上找到jsencrypt.js对RSA加解密的工具文件,地址分别是:https://github.com/travist/jsencrypt和https://github.com/openstack/xstatic-jsencrypt/blob/master/xstatic/pkg/jsencrypt/data/jsencrypt.js,两种都用《Java实现RSA密钥对并在加解 查看详情

非对称加密rsa加密文件(代码片段)

RSA加密文件  关于RSA非对称加密很多地方都有讲解。  下面是AES   AES类importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.InputStream;importjava.io.OutputStream;importjava.security.Key; 查看详情

7go密码学(四)非对称加密之rsa

...算机也无能为力的数学问题作为安全壁垒是现代密码学的实现原理。讲述这类数学问题需要庞杂的数论基础,此相关部分在此不再展开,感兴趣的请出门右拐搜索欧几里得证明、欧拉函数等数论部分知识。Go标准库中crypto/rsa包实... 查看详情

非对称加密技术-rsa算法数学原理分析

非对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密。但是对于其原理大部分同学应该都... 查看详情

使用phpopenssl扩展实现非对称加密

...。非对称加密使用私钥加密,公钥解密。这里介绍openssl实现非对称加密可使用linux自带的RSA密钥生成工具openssl,获取一对公私钥,也可使用phpopenssl扩展函数生成一对公私钥。先说第一种:执行以下命令:opensslgenrsa-outrsa_private_ke... 查看详情

加密算法之非对称加密rsa

一:非对称加密的由来   RSA公钥加密算法是1977年由RonRivest、AdiShamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所... 查看详情

cwe-780:rsa算法未使用最优非对称加密填充漏洞

...复杂,安全性依赖于算法与密钥,但也由于算法复杂使得加密解密速度不如对称加密解密快。在RSA算法中如果未使用最优非对称加 查看详情