最近做的项目中,涉及到了密码加密传输,可是刚好不凑巧的是密码没有长度限制,烦skr人了。关于50位以下的rsa加密可以直接使用jsencrypt实现。还是先记录下jsencrypt的使用吧。
第一步当然是安装了
npm install jsencrypt
如何使用?
随意一个.vue文件
// 首先引入jsencrypt
import JSEncrypt from 'jsencrypt';
// 1.初始化
const encrypt = new JSEncrypt({});
const password = 'ysj';
// 2.设置密钥
const rsaPublicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCWOxBMX1zS2Ds794/brkHRKpZ0
AiGY1IoHwOuru4Lng4fy89Ox/VCf/CWIfndxepidbvjyQGj8PGL0lU76Q+w8PH0y
YAsWQsF6u7s8KBHJC/eH8b/kdSH2LtB5FO4Qz0MET4IHQUSAKJkXdMbZzUP+bBa/
sWH9q0qDdjiBw2uBRwIDAQAB'; // 这里是我随机生成的,项目中找后端要哈哈
// 在线生成密钥地址 http://www.metools.info/code/c80.html
encrypt.setPublicKey(rsaPublicKey);
// 根据要求进行加密,我的加密规则是时间戳,密码
const timestamp = (new Date()).valueOf();
const res = encrypt.encrypt(timestamp + ',' + password);
console.log(res);
是不是超简单!经过QA同学一顿乱测,发现超长了(如下图),第一反应是什么鬼东西,baidu一下原来是超长了,随后万能的网友给出方案,「分段加密」
lang lang time的研究发现,引入encryptLong就可以搞定,大神的话建议自己写咯。题外话:不知道大家有没有发现,网上的帖子copy过去根本就运行不起来,反复试了好几次之后,下面这个方法可以正常跑起来,仅供参考~
1.在assets下面新建一个baseJS存放 encryptLong的js文件,https://www.npmjs.com/package/encryptlong 这个链接是下载网址
2.更改JSEncrypt的引入路径
至此,已经可以对长文本进行rsa加密了,这是我目前感觉最简单的方法,试试copy下代码99%可以跑起来,运行不了的话可以留言给我哈