Что такое РСА
Алгоритм шифрования RSA является наиболее часто используемым алгоритмом асимметричного шифрования, который можно использовать как для шифрования, так и для цифровой подписи.
использовать шифрование в vue
Сначала представьте jsencrypt
npm install jsencrypt --save
Представлено в main.js
import JsEncrypt from 'jsencrypt'
Vue.prototype.$jsEncrypt = JsEncrypt
Инкапсулируйте методы шифрования и дешифрования в общие js
let publicKey = '这里是封装的公钥'
let privateKey = '这里是封装的私钥'
//加密方法
RSAencrypt(pas){
//实例化jsEncrypt对象
let jse = new JSEncrypt();
//设置公钥
jse.setPublicKey(publicKey);
// console.log('加密:'+jse.encrypt(pas))
return jse.encrypt(pas);
},
//解密方法
RSAdecrypt(pas){
let jse = new JSEncrypt();
// 私钥
jse.setPrivateKey(privateKey)
// console.log('解密:'+jse.decrypt(pas))
return jse.decrypt(pas);
},
Использование подписи в vue
Для подписи необходимо ввести jsrsasign
npm install jsrsasign --save
Представлено в main.js
import Jsrsasign from 'jsrsasign'
Vue.prototype.$jsrsasign = Jsrsasign
Определите метод подписи и отмены подписи в инкапсулированном js
// 加签(用自己的私钥对signData进行签名)
signature (signData) {
// 私钥加签
let signPrivateKey = '-----BEGIN PRIVATE KEY-----这里是私钥-----END PRIVATE KEY-----';
let sig = new KJUR.crypto.Signature({"alg": "SHA1withRSA", "prov": "cryptojs/jsrsa","prvkeypem": signPrivateKey});
// let rsa = new KJUR()
// rsa = KEYUTIL.getKey(privateKey)
var hashAlg = 'sha1'; // 设置sha1
var sign = sig.signString(signData, hashAlg); // 加签
sign = hex2b64(sign);
// console.log(sign)
return sign;
},
// 验签 用公钥对签名进行验签
verify (signData, data) {
// signData: 加签的数据
// data: 加签之后得到的签文
try {
let signPublicKey = '-----BEGIN PUBLIC KEY-----这里是公钥-----END PUBLIC KEY-----';
let sig = new KJUR.crypto.Signature({"alg": "SHA1withRSA", "prov": "cryptojs/jsrsa","prvkeypem": signPublicKey});
sig.updateString(signData);
let result = sig.verify(data);
// console.log(result)
return result;
} catch(e) {
console.error(e);
}
}
Специальное напоминание: при подписании и проверке подписи к началу и хвосту необходимо добавить как открытый, так и закрытый ключ. -КОНЕЦ ОТКРЫТОГО КЛЮЧА----- '