mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-11 14:26:43 +08:00
【前端开发】随机密钥加密解密--再修改cryptoJsUtil.js脚本
This commit is contained in:
@@ -1,76 +1,65 @@
|
|||||||
|
/**
|
||||||
|
* @author
|
||||||
|
* @Date create in 2021/10/28
|
||||||
|
*/
|
||||||
import { JSEncrypt } from 'jsencrypt'
|
import { JSEncrypt } from 'jsencrypt'
|
||||||
import CryptoJS from 'crypto-js'
|
let CryptoJS = require('crypto-js')
|
||||||
export default {
|
//生成随机字符串,默认24位
|
||||||
// 生成本次请求随机密钥
|
export function randomString(len) {
|
||||||
randomString: function(len) {
|
len = len || 24
|
||||||
len = len || 24
|
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678oOLl9gqVvUuI1'
|
||||||
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678oOLl9gqVvUuI1'
|
var maxPos = $chars.length
|
||||||
var maxPos = $chars.length
|
var pwd = ''
|
||||||
var pwd = ''
|
for (let i = 0; i < len; i++) {
|
||||||
for (let i = 0; i < len; i++) {
|
pwd += $chars.charAt(Math.floor(Math.random() * maxPos))
|
||||||
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)
|
|
||||||
var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF') //偏移量
|
|
||||||
var encrypted = CryptoJS.AES.encrypt(data, key, {
|
|
||||||
iv: iv,
|
|
||||||
mode: CryptoJS.mode.CBC,
|
|
||||||
padding: CryptoJS.pad.Pkcs7
|
|
||||||
})
|
|
||||||
return encrypted.toString()
|
|
||||||
},
|
|
||||||
AESDecrypt: function(encrypted, keys) {
|
|
||||||
//解密
|
|
||||||
var key = CryptoJS.enc.Hex.parse(keys)
|
|
||||||
var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF')
|
|
||||||
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
|
|
||||||
iv: iv,
|
|
||||||
mode: CryptoJS.mode.CBC,
|
|
||||||
padding: CryptoJS.pad.Pkcs7
|
|
||||||
})
|
|
||||||
return CryptoJS.enc.Utf8.stringify(decrypted)
|
|
||||||
},
|
|
||||||
AESCacheEncrypt: function(data, keys) {
|
|
||||||
//加密 緩存
|
|
||||||
var key = CryptoJS.enc.Hex.parse(keys)
|
|
||||||
var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF') //偏移量
|
|
||||||
var encrypted = CryptoJS.AES.encrypt(data, key, {
|
|
||||||
iv: iv,
|
|
||||||
mode: CryptoJS.mode.CBC,
|
|
||||||
padding: CryptoJS.pad.Pkcs7
|
|
||||||
})
|
|
||||||
return encrypted.toString()
|
|
||||||
},
|
|
||||||
AESCacheDecrypt: function(encrypted, keys) {
|
|
||||||
//解密 緩存
|
|
||||||
var key = CryptoJS.enc.Hex.parse(keys)
|
|
||||||
var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF')
|
|
||||||
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
|
|
||||||
iv: iv,
|
|
||||||
mode: CryptoJS.mode.CBC,
|
|
||||||
padding: CryptoJS.pad.Pkcs7
|
|
||||||
})
|
|
||||||
return CryptoJS.enc.Utf8.stringify(decrypted)
|
|
||||||
}
|
}
|
||||||
|
return pwd
|
||||||
|
}
|
||||||
|
// RSA加密,公钥加密
|
||||||
|
export let RSAEncrypt = function(data, publicKey) {
|
||||||
|
let crypt = new JSEncrypt()
|
||||||
|
crypt.setPublicKey(publicKey)
|
||||||
|
return crypt.encrypt(data)
|
||||||
|
}
|
||||||
|
// RSA解密,私钥解密
|
||||||
|
// export let RSADecrypt = function (data, privateKey) {
|
||||||
|
// let crypt = new JSEncrypt()
|
||||||
|
// crypt.setPrivateKey(privateKey)
|
||||||
|
// return crypt.decrypt(data)
|
||||||
|
// }
|
||||||
|
// AES加密
|
||||||
|
export let AESEncrypt = function(data, key) {
|
||||||
|
var key = CryptoJS.enc.Utf8.parse(key)
|
||||||
|
var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF')
|
||||||
|
var encrypted = CryptoJS.AES.encrypt(data, key, {
|
||||||
|
iv: iv,
|
||||||
|
mode: CryptoJS.mode.CBC,
|
||||||
|
padding: CryptoJS.pad.Pkcs7
|
||||||
|
})
|
||||||
|
return encrypted.toString()
|
||||||
|
}
|
||||||
|
// AES解密
|
||||||
|
export let AESDecrypt = function(encrypted, key) {
|
||||||
|
//解密
|
||||||
|
var key = CryptoJS.enc.Utf8.parse(key)
|
||||||
|
var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF')
|
||||||
|
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
|
||||||
|
iv: iv,
|
||||||
|
mode: CryptoJS.mode.CBC,
|
||||||
|
padding: CryptoJS.pad.Pkcs7
|
||||||
|
})
|
||||||
|
return decrypted.toString(CryptoJS.enc.Utf8)
|
||||||
}
|
}
|
||||||
|
|
||||||
function format(base64, isPrivate = 0) {
|
function format(base64, isPrivate = 0) {
|
||||||
var text = "-----BEGIN " + (isPrivate ? "PRIVATE" : "PUBLIC") + " KEY-----\n";
|
var text = '-----BEGIN ' + (isPrivate ? 'PRIVATE' : 'PUBLIC') + ' KEY-----\n'
|
||||||
text += base64.replace(/[^\x00-\xff]/g, "$&\x01").replace(/.{64}\x01?/g, "$&\n");
|
text += base64.replace(/[^\x00-\xff]/g, '$&\x01').replace(/.{64}\x01?/g, '$&\n')
|
||||||
text += "\n-----END " + (isPrivate ? "PRIVATE" : "PUBLIC") + " KEY-----";
|
text += '\n-----END ' + (isPrivate ? 'PRIVATE' : 'PUBLIC') + ' KEY-----'
|
||||||
return text;
|
return text
|
||||||
}
|
}
|
||||||
export let MD5 = function (key) {
|
export let MD5 = function(key) {
|
||||||
return CryptoJS.MD5(key);
|
return CryptoJS.MD5(key)
|
||||||
}
|
}
|
||||||
export let publicKey = format(`MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApkixN3Dc6BLzb/V74VpxRXsSIu9AabGmK4xfcPiIqub0JS99a+P6XAOGuiMT2W4p1C8U9MZDRgHjUOrKGcc5ve9uT+U90LiAgwG58YdrklOTwlGvo6Xh4HQLRXMNoGsn6jLGdOV1RIVfWQ5EWfEB1+5v86QarLyfLIJ4ujVQfafEJ4dCwmoNSJk8xqVBAW9tDZlNOOgaZPJuEXVIFEEjIZCkFkFxkomwVNdp79Xewrj0mCybCDVy6Mcx3jOxY0gGwbGgS3YQxDbOpqYna8rcmf6CVJ2GA75sCU61Y8Of244CR5Rwkspbr1Pbf4UNSbVbpxzI08z1jrJvCVYWNQLMwwIDAQAB`);
|
export let publicKey = format(
|
||||||
|
`MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApkixN3Dc6BLzb/V74VpxRXsSIu9AabGmK4xfcPiIqub0JS99a+P6XAOGuiMT2W4p1C8U9MZDRgHjUOrKGcc5ve9uT+U90LiAgwG58YdrklOTwlGvo6Xh4HQLRXMNoGsn6jLGdOV1RIVfWQ5EWfEB1+5v86QarLyfLIJ4ujVQfafEJ4dCwmoNSJk8xqVBAW9tDZlNOOgaZPJuEXVIFEEjIZCkFkFxkomwVNdp79Xewrj0mCybCDVy6Mcx3jOxY0gGwbGgS3YQxDbOpqYna8rcmf6CVJ2GA75sCU61Y8Of244CR5Rwkspbr1Pbf4UNSbVbpxzI08z1jrJvCVYWNQLMwwIDAQAB`
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user