在VUE中使用RSA加密解密加签解签,前端经典面试

87 阅读5分钟

学习分享,共勉

题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心

开源分享:docs.qq.com/doc/DSmRnRG…


前言

===========================================================

项目中部分隐私参数要前后端对接交互时,出于安全性考虑,我们会对重要的参数进行加密后再进行传输,一般采用的加密方式是非对称性加密RSA算法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是RSA加密?

====================================================================

RSA加密是一种非对称加密。

可以在不直接传递密钥的情况下,完成解密。

这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。

RSA是由一对密钥来进行加解密的过程,分别称为公钥和私钥。

两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。

通常个人保存私钥,公钥是公开的(可能同时多人持有)。

二、加密过程

===============================================================

  • (1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。

  • (2)A传递自己的公钥给B,B用A的公钥对消息进行加密。

  • (3)A接收到B加密的消息,利用A自己的私钥对消息进行解密。

在这个过程中,只有2次传递过程,第一次是A传递公钥给B,第二次是B传递加密消息给A,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行解密,防止了消息内容的泄露。


三、在Vue中使用步骤

====================================================================

一般是客户端初始化时访问服务端时,服务端会生成一对RSA对,及公钥和密钥。

  • 如果前端只需要将要传给后端的数据进行加密后传输,那么前端可以只要公钥,通过公钥对要传输的参数进行加密后把加密的字符串发给后端即可,后端自有办法解密。

  • 如果前端要获取后端传过来的已经加密后的字符串,并且解密使用,那么前端就需要拿到RSA对立面的私钥进行解密后使用了。

使用步骤:

1、安装依赖

首先引入jsencrypt

npm install jsencrypt --save

2、在main.js中引入

import JsEncrypt from 'jsencrypt'

Vue.prototype.$jsEncrypt = JsEncrypt

3、将加密解密方法封装到通用的js内

let publicKey = '这里是封装的公钥'

let privateKey = '这里是封装的私钥'

//加密方法

RSAencrypt(pas){

//实例化jsEncrypt对象

let jse = new JSEncrypt();

//设置公钥

jse.setPublicKey(publicKey);

console.log('加密:'+jse.encrypt(pas))

return jse.encrypt(pas);

}, 下面是我在学习HTML和CSS的时候整理的一些笔记,有兴趣的可以看下:

HTML、CSS部分截图

进阶阶段

进阶阶段,开始攻 JS,对于刚接触 JS 的初学者,确实比学习 HTML 和 CSS 有难度,但是只要肯下功夫,这部分对于你来说,也不是什么大问题。

JS 内容涉及到的知识点较多,看到网上有很多人建议你从头到尾抱着那本《JavaScript高级程序设计》学,我是不建议的,毕竟刚接触 JS 谁能看得下去,当时我也不能,也没那样做。

我这部分的学习技巧是,增加次数,减少单次看的内容。就是说,第一遍学习 JS 走马观花的看,看个大概,去找视频以及网站学习,不建议直接看书。因为看书看不下去的时候很打击你学下去的信心。

然后通过一些网站的小例子,开始动手敲代码,一定要去实践、实践、实践,这一遍是为了更好的去熟悉 JS 的语法。别只顾着来回的看知识点,眼高手低可不是个好习惯,我在这吃过亏,你懂的。

1、JavaScript 和 ES6

在这个过程你会发现,有很多 JS 知识点你并不能更好的理解为什么这么设计,以及这样设计的好处是什么,这就逼着让你去学习这单个知识点的来龙去脉,去哪学?第一,书籍,我知道你不喜欢看,我最近通过刷大厂面试题整理了一份前端核心知识笔记,比较书籍更精简,一句废话都没有,这份笔记也让我通过跳槽从8k涨成20k。

JavaScript部分截图

2、前端框架

前端框架太多了,真的学不动了,别慌,其实对于前端的三大马车,Angular、React、Vue 只要把其中一种框架学明白,底层原理实现,其他两个学起来不会很吃力,这也取决于你以后就职的公司要求你会哪一个框架了,当然,会的越多越好,但是往往每个人的时间是有限的,对于自学的学生,或者即将面试找工作的人,当然要选择一门框架深挖原理。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

以 Vue 为例,我整理了如下的面试题。

Vue部分截图