概要
前端如何实现登录RSA加密
RSA加密算法:RSA加密算法,是生成一对密钥,分别为公钥、私钥,成对存在。用其一加密,另一个解密。token一般使用 私钥加密,公钥解密 的方式来进行签名认证
1.公钥加密,私钥解密
公钥被多人持有,对于公钥加密的信息,只有私钥才能解密,从而实现了数据可以保密的到达拥有私钥的一方。即使被第三方截取,也无法解密。
2.私钥加密,公钥解密
一般被用于数字签名。数字签名是用于防篡改和防止假冒的,因为只有一人拥有私钥。甲方通过私钥对数据进行签名,乙方通过甲方的公钥验证签名,如果成功,说明确实是甲方发来的,并且数据没有被修改。一旦相反,公钥是公开的,无意义。
安装RSA插件
yarn add jsencrypt --dev
秘钥生成文档生成秘钥
封装加密和解密方法
//encryption.ts
import JSEncrypt from 'jsencrypt'
export default{
//加密和解密的秘钥通过文档生成后放进去
// 加密
getRsaCode(str){
let pubKey = '' 引用 rsa 公钥
let encryptStr = new JSEncrypt()
encryptStr.setPublicKey(pubKey) // 设置 加密公钥
// 如果是对象/数组的话,需要先JSON.stringify转换成字符串
let pubData = encryptStr.encrypt(str) // 进行加密
return pubData
},
// 解密
setRsaCode(str){
let priKey = ''
let decryptStr = new JSEncrypt()
decryptStr.setPrivateKey(priKey)
// 如果是对象/数组的话,需要先JSON.stringify转换成字符串
let decData = decryptStr.decrypt(str)
return decData
}
}```
页面使用
import encryption from '@/utils/encryption.ts'
encryption.getRsaCode(password)
encryption.setRsaCode(password)