Web前端最新在VUE中使用RSA加密解密加签解签,零基础前端开发

最后

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
就答题情况而言,第一问100%都可以回答正确,第二问大概只有50%正确率,第三问能回答正确的就不多了,第四问再正确就非常非常少了。其实此题并没有太多刁钻匪夷所思的用法,都是一些可能会遇到的场景,而大多数人但凡有1年到2年的工作经验都应该完全正确才对。
只能说有一些人太急躁太轻视了,希望大家通过此文了解js一些特性。

并祝愿大家在新的一年找工作面试中胆大心细,发挥出最好的水平,找到一份理想的工作。

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

一、什么是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);

},

最后

好了,这就是整理的前端从入门到放弃的学习笔记,还有很多没有整理到,我也算是边学边去整理,后续还会慢慢完善,这些相信够你学一阵子了。

做程序员,做前端工程师,真的是一个学习就会有回报的职业,不看出身高低,不看学历强弱,只要你的技术达到应有的水准,就能够得到对应的回报。

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

学习从来没有一蹴而就,都是持之以恒的,正所谓活到老学到老,真正懂得学习的人,才不会被这个时代的洪流所淘汰。

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端Vue RSA加密示例代码如下: ```javascript 前端Vue RSA加密 import JSEncrypt from 'jsencrypt' // 创建RSA加密实例 const encrypt = new JSEncrypt() // 设置RSA公钥 const publicKey = 'YOUR_RSA_PUBLIC_KEY' encrypt.setPublicKey(publicKey) // 要加密的数据 const data = 'YOUR_DATA_TO_ENCRYPT' // 使用RSA公钥进行加密 const encryptedData = encrypt.encrypt(data) // 将加密后的数据发送到后端进行解密 ``` 后端Java解密示例代码如下: ```java import java.security.KeyFactory; import java.security.PrivateKey; import java.security.spec.PKCS8EncodedKeySpec; import javax.crypto.Cipher; import org.apache.commons.codec.binary.Base64; public class RSADecrypt { public static String decrypt(String encryptedData, String privateKeyStr) throws Exception { // 将Base64编码后的私钥字符串转换为PrivateKey对象 byte[] privateKeyBytes = Base64.decodeBase64(privateKeyStr); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(keySpec); // 使用私钥进行解密 Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] encryptedBytes = Base64.decodeBase64(encryptedData); byte[] decryptedBytes = cipher.doFinal(encryptedBytes); // 返回解密后的数据 return new String(decryptedBytes); } } ``` 请将 `YOUR_RSA_PUBLIC_KEY` 替换为你的RSA公钥,然后在前端将加密后的数据发送到后端,后端调用 `RSADecrypt.decrypt()` 方法进行解密,并将 `YOUR_DATA_TO_ENCRYPT` 替换为你要加密的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值