This commit is contained in:
cc
2026-02-17 10:27:43 +08:00
2 changed files with 19 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
import { wcdbService } from './wcdbService' import { wcdbService } from './wcdbService'
import { ConfigService } from './config' import { ConfigService } from './config'
import { ContactCacheService } from './contactCacheService' import { ContactCacheService } from './contactCacheService'
import { existsSync, mkdirSync } from 'fs' import { existsSync, mkdirSync } from 'fs'
@@ -335,9 +335,19 @@ class SnsService {
if (key && String(key).trim().length > 0) { if (key && String(key).trim().length > 0) {
try { try {
console.log(`[SnsService] 使用 WASM Isaac64 解密视频... Key: ${key}`) console.log(`[SnsService] 使用 WASM Isaac64 解密视频... Key: ${key}`)
const wasmService = WasmService.getInstance() const keyText = String(key).trim()
// 只需要前 128KB (131072 bytes) 用于解密头部 let keystream: Buffer
const keystream = await wasmService.getKeystream(String(key), 131072)
try {
const wasmService = WasmService.getInstance()
// 只需要前 128KB (131072 bytes) 用于解密头部
keystream = await wasmService.getKeystream(keyText, 131072)
} catch (wasmErr) {
// 打包漏带 wasm 或 wasm 初始化异常时,回退到纯 TS ISAAC64
console.warn(`[SnsService] WASM 解密不可用,回退 Isaac64: ${wasmErr}`)
const isaac = new Isaac64(keyText)
keystream = isaac.generateKeystream(131072)
}
const decryptLen = Math.min(keystream.length, raw.length) const decryptLen = Math.min(keystream.length, raw.length)

View File

@@ -10,7 +10,7 @@
}, },
"//": "二改不应改变此处的作者与应用信息", "//": "二改不应改变此处的作者与应用信息",
"scripts": { "scripts": {
"postinstall": "echo 'No native modules to rebuild'", "postinstall": "electron-builder install-app-deps",
"rebuild": "electron-rebuild", "rebuild": "electron-rebuild",
"dev": "vite", "dev": "vite",
"build": "tsc && vite build && electron-builder", "build": "tsc && vite build && electron-builder",
@@ -107,6 +107,10 @@
{ {
"from": "public/icon.ico", "from": "public/icon.ico",
"to": "icon.ico" "to": "icon.ico"
},
{
"from": "electron/assets/wasm/",
"to": "assets/wasm/"
} }
], ],
"files": [ "files": [