import { JSEncrypt } from 'jsencrypt'

// const encryptor = new JSEncrypt({ default_key_size: 1024 })
/**
 * RSA非对称加密与解密方法
 */
/**
 * @description 生成公钥和私钥
 * @author WangSLi
 * @param {*} publicKey 公钥
 * @param {*} data 数据
 */
export function generateKey() {
  const genKeyPair = {}
  // 新建JSEncrypt对象
  const encryptor = new JSEncrypt()
  // 获取私钥
  genKeyPair.privateKey = encryptor.getPrivateKey()
  // 获取公钥
  genKeyPair.publicKey = encryptor.getPublicKey()
  return genKeyPair
}

/**
 * @description 数据加密方法
 * @author WangSLi
 * @param {*} publicKey 公钥
 * @param {*} data 数据
 */
export function encryptedData(plain, publicKey) {
  // 新建JSEncrypt对象
  const encryptor = new JSEncrypt()
  // 设置公钥
  encryptor.setPublicKey(publicKey)
  // 加密数据
  return encryptor.encrypt(plain)
}

/**
 * @description 数据解密方法
 * @author WangSLi
 * @param {*} publicKey 公钥
 * @param {*} data 数据
 */
export function decryptedData(cipher, privateKey) {
  // 新建JSEncrypt对象
  const encryptor = new JSEncrypt()
  // 设置公钥
  encryptor.setPrivateKey(privateKey)
  // 加密数据
  return encryptor.decrypt(cipher)
}
