当前有很多数据在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键编码/解码数据!
我希望它对您有帮助! ðº