mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-02 23:40:24 +08:00
37 lines
993 B
TypeScript
37 lines
993 B
TypeScript
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 && sessionStorage.getItem('RsaPublicKey') != null) {
|
|
return encryptor.encrypt(value);
|
|
}
|
|
encryptor = new JSEncrypt();
|
|
const publicKey = (await getRsaPublicKey()) as string;
|
|
notBlank(publicKey, '获取公钥失败');
|
|
encryptor.setPublicKey(publicKey); //设置公钥
|
|
return encryptor.encrypt(value);
|
|
}
|