Cryptage et décryptage RSA en Python
J'ai besoin d'aide pour l'utilisation de RSA le chiffrement et le déchiffrement en Python.
Je suis entrain de créer un privé/clé publique de la paire, le cryptage d'un message avec les touches et l'écriture de message dans un fichier. Alors je suis à la lecture du texte chiffré à partir d'un fichier et le décryptage de texte à l'aide de la clé.
Je vais avoir des ennuis avec le décryptage de la partie. Comme vous pouvez le voir dans mon code ci-dessous, lorsque je l'ai mis dans decrypted = key.decrypt(message)
que le programme fonctionne, mais le message déchiffré est chiffrée à nouveau. Il semble que ce n'est pas la lecture du texte chiffré à partir du fichier.
Quelqu'un peut-il m'aider à écrire ce code afin de déchiffrement lit le texte chiffré à partir d'un fichier, puis utilise la clé pour déchiffrer le texte chiffré?
import Crypto
from Crypto.PublicKey import RSA
from Crypto import Random
random_generator = Random.new().read
key = RSA.generate(1024, random_generator) #generate public and private keys
publickey = key.publickey # pub key export for exchange
encrypted = publickey.encrypt('encrypt this message', 32)
#message to encrypt is in the above line 'encrypt this message'
print 'encrypted message:', encrypted #ciphertext
f = open ('encryption.txt', 'w'w)
f.write(str(encrypted)) #write ciphertext to file
f.close()
#decrypted code below
f = open ('encryption.txt', 'r')
message = f.read()
decrypted = key.decrypt(message)
print 'decrypted', decrypted
f = open ('encryption.txt', 'w')
f.write(str(message))
f.write(str(decrypted))
f.close()
source d'informationauteur Alysson
Vous devez vous connecter pour publier un commentaire.
Afin de le faire fonctionner, vous avez besoin de convertir la clé de str pour tuple avant de déchiffrement(ast.literal_eval fonction). Voici fixes code:
Et l'utilisation
Dans le code ci-dessus, fondamentalement, vous pouvez encrypte votre texte avec un mot de passe comme "01234567" et decrypte de nouveau avec ce mot de passe. C'est simple. La seule précaution est, votre longueur de texte doit être une puissance de 8, donc il est un peu de la boucle qui ajoute assez d'espace pour faire de votre texte de la longueur divisible par 8. Thats it.