J'essaie de crypter un fichier en utilisant OpenPGP en python via l'application pycrypto. J'ai suivi l'exemple fourni dans leur code ici: https://github.com/dlitz/pycrypto/blob/master/lib/Crypto/Cipher/CAST.pyChiffrement Pycrypto OpenPGP: Pourquoi y a-t-il une limite de 16 octets à la clé, quelle partie de la clé dois-je fournir pour atteindre 16 octets?
Donc j'utilise mode.openPGP, mais je n'arrive pas à crypter quoi que ce soit en utilisant une clé publique. Ma clé publique est bien au-dessus de la limite de 16 octets qu'ils spécifient (et toute génération que j'ai vu est aussi au-dessus de cette limite). Y a-t-il une valeur différente que je suis censé utiliser ici, comme l'identifiant d'empreinte digitale? J'essaie de lire le contenu d'un fichier, de le chiffrer avec une clé, puis de l'imprimer dans un nouveau fichier à envoyer (les deux seront supprimés plus tard). Mon code est le suivant:
iv = CryptoRandom.new().read(CAST.block_size)
cipher = CAST.new(public_key, CAST.MODE_OPENPGP, iv)
file = open(filename)
contents = ''.join(file.readlines())
encrypted_contents = cipher.encrypt(contents)
encrypted_filename = filename.replace('/tmp/', '/tmp/encrypted')
encrypted_filename = encrypted_filename.replace('.csv', '.asc')
encrypted_file = open(encrypted_filename, 'w')
encrypted_file.write(encrypted_contents)
return encrypted_filename
Ahh c'est logique, mais comment puis-je crypter quelque chose avec la clé publique alors, je vais courir dans la même erreur. J'essaie actuellement d'utiliser une clé PGP générée par RSA et d'utiliser le fichier de clé publique RSA dans pycrypto pour le charger, mais il ne cesse de me dire que c'est "pas une structure DER" lors de l'importation de la clé. Je suis vraiment perdu ici je pense ... – user1686149
@ user1686149 Je suggère de poser une question distincte concernant les problèmes de cryptage RSA que vous rencontrez, en étant sûr de publier le code que vous utilisez. – Iridium
Fera. Merci pour l'aide. – user1686149