// ============================================================ // preload/safe-storage.ts — 安全加密 API(基于 Electron safeStorage) // // 提供加密/解密接口,渲染进程通过 window.safeStorage 调用 // ============================================================ import { ipcRenderer, contextBridge } from 'electron'; import { BIDIRECTIONAL } from '../../shared/constants/ipc'; /** 安全加密 API */ export function exposeSafeStorage(): void { contextBridge.exposeInMainWorld('safeStorage', { /** * 加密明文字符串 * @param plaintext - 待加密的明文 * @returns Base64 编码的密文,失败返回 null */ async encrypt(plaintext: string): Promise { const result = await ipcRenderer.invoke(BIDIRECTIONAL.SAFESTORAGE_ENCRYPT, plaintext); return result?.success ? result.data : null; }, /** * 解密 Base64 密文 * @param encryptedBase64 - Base64 编码的密文 * @returns 解密后的明文,失败返回 null */ async decrypt(encryptedBase64: string): Promise { const result = await ipcRenderer.invoke(BIDIRECTIONAL.SAFESTORAGE_DECRYPT, encryptedBase64); return result?.success ? result.data : null; }, }); }