消除GnuPG加密中的特殊字符

时间:2016-05-09 08:35:37

标签: c# query-string gnupg

使用GnuPG进行加密时,有没有办法消除特殊字符。我得到了以下问题。 当我使用GPG加密某些文字时,它会包含+等特殊字符。

加密命令

--encrypt --armor --recipient

因此,当通过查询字符串传递此加密文本并尝试解密时。我收到以下错误。

错误

gpg: no valid OpenPGP data found.gpg: decrypt_message failed: Unknown system error 

那么,有没有办法让GPG不包含一些特殊字符?

1 个答案:

答案 0 :(得分:0)

不,没有。 OpenPGP指定了两种编码,即您使用的ASCII装甲和二进制格式。

ASCII装甲最初是为邮件传输而开发的,只允许基本的7位ASCII字符而无需进一步编码。

网址编码需要其他限制或编码。如果您无法更改数据(并且无法使用GnuPG / OpenPGP),则必须添加由您选择的传输协议强制执行的其他编码。

幸运的是,C#内置了URL encoding and decoding methods个内容。如果传输大小很重要,我建议您也尝试对二进制数据进行URL编码,这可能会节省大部分数据。如果您很少传输小的加密消息,我会使用URL编码ASCII装甲消息,因为处理ASCII装甲字符串数据通常比交换二进制信息更强大。