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

jsencrypt实现前端RSA非对称加密解密(vue项目),第1张

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

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

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

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

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

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

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

参考链接: RSA非对称加密传输---前端加密&解密(VUE项目)
>给sqlite数据库加密解密的方法:
1、创建空的sqlite数据库。
//数据库名的后缀你可以直接指定,甚至没有后缀都可以
//方法一:创建一个空sqlite数据库,用io的方式
filestream
fs
=
filecreate(“c:\\testdb“);

加密数据有3种方法:
1 用系统自带的EFS加密,但要注意备份加密证书,另外在加密帐号下是看不到加密效果的。
2 用winrar的压缩加密,但速度慢, *** 作麻烦。
3 用超级加密3000加密数据,超级加密3000采用先进的加密算法,使你的数据加密后,真正的达到超高的加密强度,让你的加密数据无懈可击,没有密码无法解密。
您可以根据自己的实际需求选择一款属于自己的数据加密方法。

方法汇总:
>

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/13378388.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-31
下一篇2025-08-31

发表评论

登录后才能评论

评论列表(0条)

    保存