import openApi from './openApi'; import JSEncrypt from 'jsencrypt' import { notBlank } from './assert'; var encryptor: any = null export async function getRsaPublicKey() { let publicKey = sessionStorage.getItem('RsaPublicKey') if (publicKey) { return publicKey } publicKey = await openApi.getPublicKey() as string sessionStorage.setItem('RsaPublicKey', publicKey) return publicKey } /** * 公钥加密指定值 * * @param value value * @returns 加密后的值 */ export async function RsaEncrypt(value: any) { // 不存在则返回空值 if (!value) { return "" } if (encryptor != null) { return encryptor.encrypt(value) } encryptor = new JSEncrypt() const publicKey = await getRsaPublicKey() as string; notBlank(publicKey, "获取公钥失败") encryptor.setPublicKey(publicKey)//设置公钥 return encryptor.encrypt(value) }