如何使用PHP解密对称加密的OpenPGP消息?

算我一个

我有一个OpenPGP消息,在文件中看起来像这样:

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.9 (MingW32)

jA0EAgMCtCzaGHIQXY9g0sBnAeDOQ9GuVA/uICuP+7Z2dnjNCLgRN0J/TzJs1qcW
aJYBTkH5KQCClCxjwTYbHZCox1sENfIS+KxpCKJQqAX3SNEFm0ORNE6RNwEgb1Zj
uOdIw8auxUsjmQKFLAcZIPKjBjyJqSQVfmEoteVn1n+pwm8RdIZevCHwLF2URStB
nBVuycaxcaxcaxcxccxcxacqweqweqwe123fsMqQPaTusOBGpEQrWC9jArtvYEUpY
aNF6BfQ0y2CYrZrmzRoQnmtnVu10PagEuWmVxCucyhVwlthVgN0iBog9jhjliQkc
rrDTupqB4IimMEjElGUHtkuvrCQ0jQnOHEAJmmefMDH0NkYKGd5Ngt21I5ge5tob
/uBjHKMxjNgg1nWfg6Lz4jqoKe/EweuEeg==
=+N9N
-----END PGP MESSAGE-----

我想给了一个15个字符的密码来解密它。但是我真的不知道要使用PHP解密文件。我看一下PHP的GnuPG手册页,并在gnugpg_decrypt()示例中给出了以下代码:

$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;

因此,看看这个功能gnupg_adddecryptkey,它提到我需要一个指纹。那到底是什么 在哪里可以买到呢?

詹斯原为

指纹是根据公钥和一些元数据(如密钥创建时间)计算出的哈希值。通过gnupg_importasfingerprint属性导入密钥后,也将返回它

这是针对公用/专用密钥加密的,您似乎没有使用它:使用密码加密时,您将省略公用/专用密钥加密的部分,而对消息使用会话密钥直接使用对称加密(有时也从密码短语派生而来的密码(称为密码块或对称密钥)。

PHP的GnuPG模块不支持对称加密。没有执行对称解密的功能,并且此限制在模块的源文档中也有描述

此类为GNU Privacy Guard(GPG)提供了一个面向对象的接口。

尽管GPG可以支持对称密钥加密,但是此类仅旨在促进公共密钥加密。

您将必须通过调用手动执行解密gpg一个示例命令行是

gpg --symmetric --decrypt [file]

(或者,您也可以通过STDIN提供输入)。要提交密码,请查看GnuPG的--passphrase...选项:

--passphrase-fd n

从文件描述符n中读取密码。从文件描述符n中仅读取第一行。如果对n使用0,则将从STDIN读取密码。仅在仅提供一个密码短语的情况下才能使用此功能。

--passphrase-file file

从文件文件中读取密码。从文件file中仅读取第一行。仅在仅提供一个密码短语的情况下才能使用此功能。显然,如果其他用户可以读取该文件,则存储在文件中的密码短语的安全性值得怀疑。如果可以避免,请不要使用此选项。

--passphrase string

使用字符串作为密码。仅在仅提供一个密码短语的情况下才能使用此功能。显然,这在多用户系统上具有非常可疑的安全性。如果可以避免,请不要使用此选项。

请注意,计算机的所有其他用户都可以读取所有其他用户的命令行参数,因此对于共享主机平台尤其如此,--passphrase这绝对是不行的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何确定OpenPGP加密是对称还是非对称?

来自分类Dev

如何使用JavaScript库使用椭圆曲线解密加密消息?

来自分类Dev

如何使用可以使用gpg解密的对称AES256用Ruby加密文件?

来自分类Dev

如何使用可以使用gpg解密的对称AES256用Ruby加密文件?

来自分类Dev

如何使用替代函数来解密和加密消息

来自分类Dev

如何使用过期的OpenPGP密钥向用户发送加密消息?

来自分类Dev

如何使用Libsodium-PHP加密/解密AES

来自分类Dev

如何使用BASH命令解密PHP Openssl加密

来自分类Dev

如何使用 libsodium php 用盐加密/解密密码

来自分类Dev

如何使用C#加密OpenPGP密钥?

来自分类Dev

如何使用gpg对称加密文件?

来自分类Dev

如何知道ssh使用的对称加密的类型?

来自分类Dev

在发送包含已解密消息的通知时,WhatsApp如何使用端到端加密?

来自分类Dev

使用CryptoJS加密并使用PHP解密

来自分类Dev

使用Rijndael的不同Delphi / PHP加密-解密

来自分类Dev

使用Android和PHP加密/解密

来自分类Dev

使用新的 php 版本加密解密问题

来自分类Dev

如何使用PHP中的对称密钥算法对结果中没有元字符的数据进行加密

来自分类Dev

CryptoJS AES解密用PHP openssl_encrypt加密的消息

来自分类Dev

无法弄清楚为什么PHP到C#.NET不会对称加密/解密

来自分类Dev

使用GPG对称加密时,如何解决“警告:消息未受到完整性保护”?

来自分类常见问题

如何通过套接字正确地非对称加密和解密

来自分类Dev

发件人如何解密自己的加密消息

来自分类Dev

c(加密消息)如何通过RSA中的私钥解密?

来自分类Dev

如何使用Qt加密/解密/播放视频?

来自分类Dev

如何使用OpenSSL解密加密的私钥?

来自分类Dev

如何使用openssl解密加密文件?

来自分类Dev

无法使用非对称加密解密 Spring Cloud 配置中的配置属性

来自分类Dev

如何使用加密密钥加密消息

Related 相关文章

  1. 1

    如何确定OpenPGP加密是对称还是非对称?

  2. 2

    如何使用JavaScript库使用椭圆曲线解密加密消息?

  3. 3

    如何使用可以使用gpg解密的对称AES256用Ruby加密文件?

  4. 4

    如何使用可以使用gpg解密的对称AES256用Ruby加密文件?

  5. 5

    如何使用替代函数来解密和加密消息

  6. 6

    如何使用过期的OpenPGP密钥向用户发送加密消息?

  7. 7

    如何使用Libsodium-PHP加密/解密AES

  8. 8

    如何使用BASH命令解密PHP Openssl加密

  9. 9

    如何使用 libsodium php 用盐加密/解密密码

  10. 10

    如何使用C#加密OpenPGP密钥?

  11. 11

    如何使用gpg对称加密文件?

  12. 12

    如何知道ssh使用的对称加密的类型?

  13. 13

    在发送包含已解密消息的通知时,WhatsApp如何使用端到端加密?

  14. 14

    使用CryptoJS加密并使用PHP解密

  15. 15

    使用Rijndael的不同Delphi / PHP加密-解密

  16. 16

    使用Android和PHP加密/解密

  17. 17

    使用新的 php 版本加密解密问题

  18. 18

    如何使用PHP中的对称密钥算法对结果中没有元字符的数据进行加密

  19. 19

    CryptoJS AES解密用PHP openssl_encrypt加密的消息

  20. 20

    无法弄清楚为什么PHP到C#.NET不会对称加密/解密

  21. 21

    使用GPG对称加密时,如何解决“警告:消息未受到完整性保护”?

  22. 22

    如何通过套接字正确地非对称加密和解密

  23. 23

    发件人如何解密自己的加密消息

  24. 24

    c(加密消息)如何通过RSA中的私钥解密?

  25. 25

    如何使用Qt加密/解密/播放视频?

  26. 26

    如何使用OpenSSL解密加密的私钥?

  27. 27

    如何使用openssl解密加密文件?

  28. 28

    无法使用非对称加密解密 Spring Cloud 配置中的配置属性

  29. 29

    如何使用加密密钥加密消息

热门标签

归档