mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-09 16:56: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 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)
|
||||
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)
|
||||
let CryptoJS = require('crypto-js')
|
||||
//生成随机字符串,默认24位
|
||||
export function randomString(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加密,公钥加密
|
||||
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) {
|
||||
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;
|
||||
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 MD5 = function(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