使用 Kleopatra/GPG4win
已安装密钥/机密。密钥信任设置为最终信任,有效期已满,未过期。执行 gpg --list-secret-key 和 gpg --list-keys 时查看列表,一切看起来都很好。
我收到一个 .pgp 文件,有人用我提供的密钥加密了文件。我可以右键单击该文件,使用 Kleopatra (gui),选择解密并将文件保存到新位置,然后使用该文件、打开文件并读取内容。
问题是使用 cmd/脚本时出现错误:
gpg:公钥解密失败:没有密钥
gpg:解密失败:没有密钥
解密并移动:C:\Folder_A\Folder_B\folder_C\test_file_2024test.pgp
我正在使用的脚本/cmd 如下,它执行以下操作:
- 解密 PGP(失败)
- 将解密文件 (.txt) 移动至另一个位置(失败,因为文件未解密)
- 然后将原始文件(pgp)移动到存档位置(有效)
@echo off
set GPG_PATH="C:\Program Files (x86)\GnuPG\bin\gpg.exe"
::change locations to correct spots
set SOURCE_FOLDER="C:\Folder_c\Folder_d"
set DECRYPTED_FOLDER="C:\Folder_B\testfilesdecrypted"
set GPG_FILES_FOLDER="C:\Folder_A\Folder_B\Folder_C\Archive"
set LOG_FILE="C:\Logs\PGP_log.txt"
if not exist %DECRYPTED_FOLDER% mkdir %DECRYPTED_FOLDER%
if not exist %GPG_FILES_FOLDER% mkdir %GPG_FILES_FOLDER%
:: Create or clear the log file
echo. > %LOG_FILE%
::watch the encryption type - this is PGP
:: Watch the type of encryption (0 for PGP)
for %%i in (%SOURCE_FOLDER%\*.pgp) do (
%GPG_PATH% --decrypt --output %DECRYPTED_FOLDER%\%%~ni --batch --yes --passphrase "Never_gona_happen" "%%i" >> %LOG_FILE% 2>&1
move "%%i" %GPG_FILES_FOLDER%
echo Decrypted and moved: %%i >> %LOG_FILE%
)
echo Decryption, move, and file transfer completed. Check %LOG_FILE% for details.
日志文件显示 pgp 文件未解密的错误。日志文件还显示该文件已移至存档。
为什么它不能与脚本或可能的更改一起使用?