今天总算有时间了,赶快写写,项目结束这么久,再不写忘完啦
废话少说,直接上
参考自: blog.csdn.net/Amrice_/art…
遇到的问题:
在vue项目中如何使用RSA进行加密?
解决思路:
使用jsencrypt进行加密。一般是客户端初始化时访问登录服务时,服务端面动态生成一对RSA对,公钥传给客户端,客户端拿到后,用户输入密码后,点登录时用公钥加密返回给服务端,服务端用私钥解就行了。
解决方法:
一、安装依赖
npm install jsencrypt --save
二、 main.js中引用依赖
import JSEncrypt from 'jsencrypt';
Vue.prototype.$getRsaCode = function(str){ // 注册方法
let encryptStr = new JSEncrypt();
let pubKey = `rqerewrrrweqrwqewrwqrerwqrsfsafafsafsafqrewqrwqrqwreqer`; //后台给的公钥
encryptStr.setPublicKey(pubKey); // 设置 加密公钥
//str是需要加密的密码,rsa本身已经base64转码一次。因为密码是number类型,所以需要toString
let newData = encryptStr.encrypt(str.toString()); // 进行加密
return newData;
}
三、 使用加密方法
methods: {
getPass() {
let rasUserName = this.$getRsaCode(this.userName); // ras加密用户名
let rasPw = this.$getRsaCode(this.password); // ras加密密码
login({userName:rasUserName,password:rasPw}).then(res => {}).catch(err =>{});// 请求
},
}
———————————————— 版权声明:本文为CSDN博主「Amrice_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/Amrice_/art…
以上是原文,拉一份以防万一
自我应用
接下来是我自己对于上述内容的应用
简单讲述应用
我负责登录这块儿,安全起见,只要是关于密码的接口请求,密码全部用RSA加密
以下是应用
不好意思,各位老爷,不想吃官司,我只展示关键字部分吧
1.步骤1
const key = ' xxxxxxxxxx '; // 这个是公钥,后端会给你
import {JSEncrypt} from 'jsencrypt';
export function passwordEncryption(password: string) {
console.log('后台公钥===》', key);
let encryptor = new JSEncrypt();
encryptor.setPublicKey(key);
let passwordEncryp = encryptor.encrypt(password);
return passwordEncryp
}
在utils里直接进行封装
将其封装成组件内的一个方法
2.步骤2
在需要用的地方引入
// 引入方法使用
import { passwordEncryption } from '@/utils/crypto';
// 注册接口
const handleRegistered = () => {
console.log('registeredform: ', registeredform);
// 加密函数使用
const password = passwordEncryption(registeredform.pwd);
registeredAPI({ ...registeredform, pwd: password, repwd: '' }).then(res => {
// console.log('res: ', res);
if (res.code === '200' && res.message === '添加用户成功') {
message.success('注册成功');
loginhandle(); // 跳转登录页面
registeredformRef.value.resetFields(); // 清空form表单内数据,是ant下的 form的方法
} else {
message.success('注册失败');
}
})
}
基本就是这样
有什么问题欢迎指正
感谢🙏各位开源的前辈
接下来接力棒由我们后辈接过.
加油开源,兄弟们,ei,ei, owwwwwwwwwwwwww!!!!!