python使用密钥加密的表述_python - PythonGnuPG生成密钥,对消息进行加密和解密 - SO中文参考 - www.soinside.com...

在尝试使用Python的gnupg库创建并使用PGP密钥进行消息加密和解密时遇到错误。代码能够生成4096位RSA密钥对,但加密过程中出现'ENCRYPTION_COMPLIANCE_MODE'的未知状态消息。尽管如此,仍能获取加密的ASCII装甲消息。然而,在解密时,解密操作失败,返回'NO_SECRET_KEY'错误,表明找不到私钥进行解密。问题可能在于密钥的存储或传递方式。
摘要由CSDN通过智能技术生成

创建PGP密钥

加密消息

解密消息

当前代码如下:import string

import random

import gnupg

random_string_length = 20

random_gpg_key_passphrase = "".join(

random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(random_string_length))

gpg = gnupg.GPG(homedir="gpg")

cs_gpg_key_input_dict = {

"key_type": "RSA",

"key_length": 4096,

"passphrase": random_gpg_key_passphrase

}

python_gnupg_key_generation_input_data = gpg.gen_key_input(**cs_gpg_key_input_dict)

gpg_key_pair = gpg.gen_key(python_gnupg_key_generation_input_data)

encrypted_data = gpg.encrypt("message", gpg_key_pair.fingerprint,

passphrase=random_gpg_key_passphrase, always_trust=True)

msg = str(encrypted_data)

decrypted_data = gpg.decrypt(msg, passphrase=random_gpg_key_passphrase, always_trust=True)

不幸的是,加密返回错误:raise ValueError("Unknown status message: %r" % key)

ValueError: Unknown status message: 'ENCRYPTION_COMPLIANCE_MODE'

但是它仍然会生成加密的ASCII装甲消息Hovewer解密会导致Crypt对象具有False属性的ok bool值,并跟随stderr属性:[GNUPG:] ENC_TO 1 0

[GNUPG:] KEY_CONSIDERED 0

[GNUPG:] PINENTRY_LAUNCHED 7570 gnome3:curses 1.1.0 - - :0

[GNUPG:] KEY_CONSIDERED 0

gpg: encrypted with 4096-bit RSA key, ID , created 2019-10-01

"ZZZ"

gpg: public key decryption failed: Inappropriate ioctl for device

[GNUPG:] ERROR pkdecrypt_failed

[GNUPG:] BEGIN_DECRYPTION

[GNUPG:] DECRYPTION_FAILED

gpg: decryption failed: No secret key

[GNUPG:] END_DECRYPTION

不确定错误在哪里发生以及如何处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值