1 RSA加密算法
RSA加密算法是一种 非对称加密算法 ,RSA加密使用了"一对"密钥.分别是公钥和私钥,这个公钥和私钥其实就是一组数字!其二进制位长度可以是1024位或者2048位.长度越长其加密强度越大,目前为止公之于众的能破解的最大长度为768位密钥,只要高于768位,相对就比较安全.所以目前为止,这种加密算法一直被广泛使用.
1.1 RSA在jq项目中的使用
下载jsencrypt.js文件到本地,或者使用cdn的形式对文件进行引入。
前端放置公钥文件,服务端放置私钥文件。
var encryptor = new JSEncrypt({
default_key_size: 2048 //设置二进制位数
});
var publicKey= '-----BEGIN PUBLIC KEY-----\n' +
'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcRie+DklCiZyRTCniB/o6kPRk\n' +
'rRO57+cejRRrOOmoPDOrbQlOumGsNsThsShor3sgareTUiLLIdNeoV0hrTHqsFy7\n' +
'zBFL7QDnvEaI5eYwttesOp4D7y5EM0BU2lKg7L+9FbrNgILGs6PwR97quLozmvoP\n' +
'RSbr/J/E/+PNki5HMwIDAQAB\n' +
'-----END PUBLIC KEY-----'
encryptor.setPublicKey(publicKey);//公钥一般有后端返回
value = encryptor.encrypt(value);//对value值进行加密处理
1.2RSA在vue项目中的使用
引入jsencrypt的依赖包
npm i jsencrypt
在main.js文件中对文件进行引用,将其挂载在vue原型链上方便引用
import JsEncrypt from 'jsencrypt'
Vue.prototype.$jsEncrypt = JsEncrypt
在组件中的使用,可以先在data中对jse做个定义,用于数据接收
this.jse = new this.$jsEncrypt({
default_key_size:2048
});
this.jse.setPublicKey(res.data.data.public_key) //公钥由后端返回,格式与jq项目一直
//----------------------------------------------
value = this.jse.encrypt(value);//对value值进行加密擦欧洲哦
2 MD5加密
MD5不是加密算法,是哈希算法。
MD5只能加密,不能解密。
信息经过MD5加密后处理为128位的信息。
MD5处理过的信息,理论上存在破解的可能,并不是常规意义上的破解,是指存在理论上的碰撞可能,就是说存在多种原文哈希后会得到相同密文都可能。现实实现非常困难。
2.1 MD5在jq项目中的使用
下载md5.js文件到本地,或者使用cdn的形式对文件进行引入。
hex_md5(value) //常用
b64_md5(value)
str_md5(value)
hex_hmac_md5(key, data)
b64_hmac_md5(key, data)
str_hmac_md5(key, data)
2.2 MD5在vue项目中的使用
npm install --save js-md5 //下载依赖包
import md5 from 'js-md5'; //引入文件
md5(value) //对value值进行加密
总结: RSA 和MD5 加密,在日常工作中都有广泛的使用,安全性已经得到了验证,由于其不同的特性,同学们可以选择适合的场景,进行引用。