Security 解密GPG消息时发生mdc错误
我有一个客户机和服务器系统,定期运行计划任务,并通过gpg加密的xml文件进行通信。客户端和服务器之间已成功交换所有必需的公钥。加密和解密调用是从批处理文件执行的 加密语法 gpg.exe--批处理--是--收件人%1--输出%4--密码短语%5--本地用户%2--签名--加密%3 解密语法 gpg.exe--批处理--是--输出%3--密码短语%4--解密%2>%1 客户端创建一个xml文件,使用服务器公钥用gpg对其进行加密,使用私钥进行签名,然后将其上载到服务器的ftp站点。服务器定期检查ftp文件夹中的新文件。对于任何新文件,它都使用gpg进行解密,然后处理文件中的xml 对于服务器试图解密的某些xml文件,我收到如下错误: gpg:block_filter 00AA8400:读取错误(大小=7841,a->size=395) gpg:编码无效的mdc_数据包 gpg:解密失败:无效数据包 gpg:块过滤器:挂起的字节 需要注意的是,这并不是发生在所有文件上,而是发生在一些文件上。我还没有找到它失败的文件之间的任何共同点Security 解密GPG消息时发生mdc错误,security,encryption,gnupg,mdc,Security,Encryption,Gnupg,Mdc,我有一个客户机和服务器系统,定期运行计划任务,并通过gpg加密的xml文件进行通信。客户端和服务器之间已成功交换所有必需的公钥。加密和解密调用是从批处理文件执行的 加密语法 gpg.exe--批处理--是--收件人%1--输出%4--密码短语%5--本地用户%2--签名--加密%3 解密语法 gpg.exe--批处理--是--输出%3--密码短语%4--解密%2>%1 客户端创建一个xml文件,使用服务器公钥用gpg对其进行加密,使用私钥进行签名,然后将其上载到服务器的ftp站点。服务器定期检查
有人熟悉这个错误的含义吗?欢迎提供任何有助于追踪此事的建议。终于找到了答案。gpg不是罪魁祸首。当服务器检查指定文件夹中的文件时,它使用Delphi上的Append(fileHandler)方法来测试文件是否可以打开。但是这个方法有一个特殊的条件,好像它在文件的最后128字节块中找到了ascii字符26(即CTRL+z),它将从该字符中删除所有内容,直到文件结束。这导致部分加密文件被删除,并在通过gpg解密时导致上述错误。在我用Reset(fileHandler)替换Append方法之后,加密文件不再被修改,解密工作也很完美