@@ -542,7 +542,7 @@ const handleGetDbKey = async () => {
542542 const wxStatus = statusRes? .wx_status
543543
544544 if (wxStatus? .is_running ) {
545- warning .value = ' 检测到微信正在运行,5秒后将终止进程并重启以获取全套密钥 !'
545+ warning .value = ' 检测到微信正在运行,5秒后将终止进程并重启以获取数据库密钥 !'
546546 await new Promise (resolve => setTimeout (resolve, 5000 ))
547547 }
548548
@@ -554,8 +554,7 @@ const handleGetDbKey = async () => {
554554 if (res .data ? .db_key ) {
555555 formData .key = res .data .db_key
556556 }
557- warning .value = ' 🎉 数据库解密密钥已获取成功!'
558- // 3秒后清除成功提示,保持 UI 干净
557+ warning .value = ' 数据库解密密钥已获取成功!'
559558 setTimeout (() => { if (warning .value .includes (' 获取成功' )) warning .value = ' ' }, 3000 )
560559 } else {
561560 error .value = ' 获取失败: ' + (res? .errmsg || ' 未知错误' )
@@ -570,7 +569,6 @@ const handleGetDbKey = async () => {
570569 }
571570}
572571
573-
574572const applyManualKeys = () => {
575573 manualKeyErrors .xor_key = ' '
576574 manualKeyErrors .aes_key = ' '
@@ -752,16 +750,23 @@ const handleDecrypt = async () => {
752750 }
753751 try {
754752 const accounts = Object .keys (result .account_results || {})
755- if (accounts .length > 0 ) mediaAccount .value = accounts[0 ]
753+ if (accounts .length > 0 ) {
754+ mediaAccount .value = accounts[0 ]
755+ } else {
756+ const match = formData .db_storage_path .match (/ (wxid_[a-zA-Z0-9 ] + )/ )
757+ if (match) mediaAccount .value = match[1 ]
758+ }
756759 } catch (e) {}
757760
758761 currentStep .value = 1
759762 await prefillKeysForAccount (mediaAccount .value )
760763
761764 if (! manualKeys .xor_key && ! manualKeys .aes_key ) {
762- warning .value = ' 正在通过云端备选方案自动获取图片密钥 ,请稍候...'
765+ warning .value = ' 正在通过云端/本地算法自动获取图片密钥 ,请稍候...'
763766 try {
764- const imgRes = await getImageKey ({ account: mediaAccount .value })
767+ const params = mediaAccount .value ? { account: mediaAccount .value } : {}
768+ const imgRes = await getImageKey (params)
769+
765770 if (imgRes && imgRes .status === 0 ) {
766771 if (imgRes .data ? .xor_key ) manualKeys .xor_key = imgRes .data .xor_key
767772 if (imgRes .data ? .aes_key ) manualKeys .aes_key = imgRes .data .aes_key
@@ -842,7 +847,12 @@ const handleDecrypt = async () => {
842847
843848 try {
844849 const accounts = Object .keys (data .account_results || {})
845- if (accounts .length > 0 ) mediaAccount .value = accounts[0 ]
850+ if (accounts .length > 0 ) {
851+ mediaAccount .value = accounts[0 ]
852+ } else {
853+ const match = formData .db_storage_path .match (/ (wxid_[a-zA-Z0-9 ] + )/ )
854+ if (match) mediaAccount .value = match[1 ]
855+ }
846856 } catch (e) {}
847857
848858 try {
@@ -855,11 +865,11 @@ const handleDecrypt = async () => {
855865 currentStep .value = 1
856866 await prefillKeysForAccount (mediaAccount .value )
857867
858- // 【重点】如果刚才没有通过双 Hook 拿到图片密钥,触发云端 API 备用方案自动获取
859868 if (! manualKeys .xor_key && ! manualKeys .aes_key ) {
860- warning .value = ' 正在通过云端备选方案自动获取图片密钥 ,请稍候...'
869+ warning .value = ' 正在通过云端/本地算法自动获取图片密钥 ,请稍候...'
861870 try {
862- const imgRes = await getImageKey ({ account: mediaAccount .value })
871+ const params = mediaAccount .value ? { account: mediaAccount .value } : {}
872+ const imgRes = await getImageKey (params)
863873 if (imgRes && imgRes .status === 0 ) {
864874 if (imgRes .data ? .xor_key ) manualKeys .xor_key = imgRes .data .xor_key
865875 if (imgRes .data ? .aes_key ) manualKeys .aes_key = imgRes .data .aes_key
0 commit comments