是否可以使用pycryptodome或任何其他库在python中使用私钥对消息进行加密?我知道您不应该使用私钥进行加密,而不能使用公钥进行解密,但是我的目的是使用私钥进行加密,以便接收者可以确定邮件是由真实作者发送的。除了寻找安全加密以外,我还在寻找某种模糊处理。我想做一个消息公开的应用程序,但是只有拥有公共密钥才能看到。我试图做到这一点:
from Crypto import Random
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
import base64
def generate_keys():
modulus_lenght = 256 * 4
private_key = RSA.generate(modulus_lenght, Random.new().read)
public_key = private_key.publickey()
return private_key, public_key
def encrypt_private_key(a_message, private_key):
encryptor = PKCS1_OAEP.new(private_key)
encrypted_msg = encryptor.encrypt(a_message)
encoded_encrypted_msg = base64.b64encode(encrypted_msg)
return encoded_encrypted_msg
def decrypt_public_key(encoded_encrypted_msg, public_key):
encryptor = PKCS1_OAEP.new(public_key)
decoded_encrypted_msg = base64.b64decode(encoded_encrypted_msg)
decoded_decrypted_msg = encryptor.decrypt(decoded_encrypted_msg)
return decoded_decrypted_msg
private_key, public_key = generate_keys()
message = "Hello world"
encoded = encrypt_private_key(message, private_key)
decoded = decrypt_public_key(encoded, public_key)
print decoded
Run Code Online (Sandbox Code Playgroud)
但这会引发下一个错误:TypeError:这不是私钥。