今天好困好困。。。。现在坐在办公书脑子都感觉是飘的。。。睡又睡不着
希望快点到午休的时候,可以睡觉觉,不行现在还是眯一会儿,我好怕我就猝死了
todolist:
1、调接口,看代码
记录:
1、用到了Array.map()方法
map()方法
语法:array.map(function(currentValue,index,arr), thisValue) 其中 callback为数组中每个元素执行的函数,该函数可接受1-3个参数:
currentvalue参数表示数组的当前元素项,必须的参数 index参数表示的当前元素下标,可选参数 arr参数表示当前元素所属的数组,可选参数
thisValue表示执行回调函数callback()时的this指向。可选参数。当不写时,则默认是指向window全局 map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
let data = {
uuid_list: this.propData.map(item => item.uuid)
};
产生一个item.uuid的新数组赋值给uuid_list
2、关于密码的加密
什么是RSA加密
RSA加密算法是一种 非对称加密算法 ,RSA加密使用了"一对"密钥.分别是公钥和私钥,这个公钥和私钥其实就是一组数字!其二进制位长度可以是1024位或者2048位.长度越长其加密强度越大,目前为止公之于众的能破解的最大长度为768位密钥,只要高于768位,相对就比较安全.所以目前为止,这种加密算法一直被广泛使用.
前端利用jsencrypt.js(库)进行RSA加密。
jsencrypt介绍
jsencrypt就是一个基于rsa加解密的js库
使用方法
安装
npm install jsencrypt
引入
import JSEncrypt from 'jsencrypt'
rsa加密
var encryptor = new JSEncrypt() // 创建加密对象实例
//之前ssl生成的公钥,复制的时候要小心不要有空格
var pubKey = '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1QQRl0HlrVv6kGqhgonD6A9SU6ZJpnEN+Q0blT/ue6Ndt97WRfxtSAs0QoquTreaDtfC4RRX4o+CU6BTuHLUm+eSvxZS9TzbwoYZq7ObbQAZAY+SYDgAA5PHf1wNN20dGMFFgVS/y0ZWvv1UNa2laEz0I8Vmr5ZlzIn88GkmSiQIDAQAB-----END PUBLIC KEY-----'
encryptor.setPublicKey(pubKey)//设置公钥
var rsaPassWord = encryptor.encrypt('要加密的内容') // 对内容进行加密
目前的应用场景是在用户注册或登录的时候,用公钥对密码进行加密,再去传给后台,后台用私钥对加密的内容进行解密,然后进行密码校验或者保存到数据库。
项目代码:发送请求的的时候使用了加密
submit () {
this.$refs.form.validate(async (isValid) => {
if (!isValid) return;
let formData = { ...this.form };
const service = this.isEditor ? poolService.editorPool : poolService.registerPool;
let encrypt = new JSEncrypt({ default_key_size: 2048 });
encrypt.setPublicKey(this.publicKey);
formData.password = encrypt.encrypt(formData.password);
const result = await service(formData).catch(err => ({ err })).then(name => ({ name }));
if (!result || result.err) return this.showErrorMessage(result.err, `${this.isEditor ? '更新' : '注册'}存量服务器`);
this.$message.success(`存储池${formData.name}${this.isEditor ? '更新' : '注册'}成功`);
this.returnToList();
});