如何使用RSA键编码/解码数据?
#教程 #python #howto

当前有很多数据在Internet上并使用云基础架构,因此,如果我们有私人/敏感数据,我们必须保护它们!

这就是为什么今天我们将看到如何使用RSA键编码/解码数据。

什么是RSA键?

a rsa键是一对键,它允许我们进行非对称加密

公共和私钥第一个用于编码只能被第二个可以解码的消息。


生成键

在我们的示例中,我们将看到如何在Python中生成RSA键,但是您可以使用终端生成一个键。这是我解释如何做的帖子。

Link post - How to generate a SSH RSA key

设置

在进行前进之前,我们必须安装 pycryptodomex 带有以下命令

pip install pycryptodomex

代码

from Crypto.PublicKey import RSA 

# Generate a RSA key
rsa_key = RSA.generate(2048) 

# Export private and public keys
private_key = rsa_key.exportKey("PEM") 
public_key = rsa_key.publickey().exportKey("PEM") 

# Écriture des clés dans des fichiers
fd = open("private_key.pem", "wb") 
fd.write(private_key) 
fd.close() 

fd = open("public_key.pem", "wb") 
fd.write(public_key) 
fd.close()

您可以看到,使用pycryptodomex,我真的很容易。


编码/解码数据

现在我们有了钥匙,我们可以轻松地用 pycryptodomex 对数据进行编码和解码。

from Crypto.Cipher import PKCS1_OAEP 
from Crypto.PublicKey import RSA 

message = b'Test message' 

public_key = RSA.import_key(open('public_key.pem').read()) 
cipher = PKCS1_OAEP.new(public_key) 
ciphertext = cipher.encrypt(message) 
print(ciphertext) 

private_key = RSA.import_key(open('private_key.pem').read()) 
cipher = PKCS1_OAEP.new(private_key) 
decoded_message = cipher.decrypt(ciphertext) 

print(decoded_message.decode("utf-8"))

,如果您测试代码,则应看到编码的消息“测试消息”,然后完全解码!

因此,您现在知道如何使用RSA键编码/解码数据!

我希望它对您有帮助! ðº