import { Encrypt, Crypto } from "./crypto"; export const encryptConfig = async (config) => { let secretKey = randomRange(32, 32); let encryptSecretKey = await Encrypt.encrypt(secretKey); // 密钥进行非对称加密 if (encryptSecretKey) { config.headers['X-Encrypted-Key'] = encryptSecretKey; } if (config.data && Object.prototype.toString.call(config.data) === '[object Object]') { Object.keys(config.data).forEach(async key => { config.data[key] = Crypto.AES.encrypt(config.data[key], secretKey) console.log(config.data[key], 'KEY') // config.data[key] = await Encrypt.encrypt(config.data[key]) }) } return config; } const randomRange = (min, max, charStr) => { var returnStr = "", range; if (typeof max == 'string') { charStr = max; } range = ((max && typeof max == 'number') ? Math.round(Math.random() * (max - min)) + min : min); charStr = charStr || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; for (var i = 0; i < range; i++) { var index = Math.round(Math.random() * (charStr.length - 1)); returnStr += charStr.substring(index, index + 1); } return returnStr; }