【前端开发】随机密钥加密解密--修改request.js和cryptoJsUtil.js脚本

This commit is contained in:
liyuetong
2021-10-25 09:55:05 +08:00
parent 4c17dfafc8
commit 63606aff2f
4 changed files with 90 additions and 9 deletions

View File

@@ -1,5 +1,23 @@
import { JSEncrypt } from 'jsencrypt'
import CryptoJS from 'crypto-js'
export default {
// 生成本次请求随机密钥
randomString: function(len) {
len = len || 24
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678oOLl9gqVvUuI1'
var maxPos = $chars.length
var pwd = ''
for (let i = 0; i < len; i++) {
pwd += $chars.charAt(Math.floor(Math.random() * maxPos))
}
return pwd
},
// RSA加密,公钥加密
RSAEncrypt : function (data, publicKey) {
let crypt = new JSEncrypt()
crypt.setPublicKey(publicKey)
return crypt.encrypt(data);
},
AESEncrypt: function(data, keys) {
//加密
var key = CryptoJS.enc.Hex.parse(keys)
@@ -45,3 +63,14 @@ export default {
return CryptoJS.enc.Utf8.stringify(decrypted)
}
}
function format(base64, isPrivate = 0) {
var text = "-----BEGIN " + (isPrivate ? "PRIVATE" : "PUBLIC") + " KEY-----\n";
text += base64.replace(/[^\x00-\xff]/g, "$&\x01").replace(/.{64}\x01?/g, "$&\n");
text += "\n-----END " + (isPrivate ? "PRIVATE" : "PUBLIC") + " KEY-----";
return text;
}
export let MD5 = function (key) {
return CryptoJS.MD5(key);
}
export let publicKey = format(`MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApkixN3Dc6BLzb/V74VpxRXsSIu9AabGmK4xfcPiIqub0JS99a+P6XAOGuiMT2W4p1C8U9MZDRgHjUOrKGcc5ve9uT+U90LiAgwG58YdrklOTwlGvo6Xh4HQLRXMNoGsn6jLGdOV1RIVfWQ5EWfEB1+5v86QarLyfLIJ4ujVQfafEJ4dCwmoNSJk8xqVBAW9tDZlNOOgaZPJuEXVIFEEjIZCkFkFxkomwVNdp79Xewrj0mCybCDVy6Mcx3jOxY0gGwbGgS3YQxDbOpqYna8rcmf6CVJ2GA75sCU61Y8Of244CR5Rwkspbr1Pbf4UNSbVbpxzI08z1jrJvCVYWNQLMwwIDAQAB`);