À l'aide de pycrypto, comment faire pour importer une clé publique RSA et de l'utiliser pour crypter une chaîne de caractères?
La clé publique RSA:
pubkey = 'MIGfMA0GCSqGSIb3DQEBA3UAA4GNADCBiqkbgqc35emayojxeojt5hxarhkzdbemu3qiwe0hsq77cwp/8UbX07W2XKwngUyY4k6Hl2M/n9TOZMZsiBzer/fqV+QNPN1m9M94eUm2gQgwkoRj5battRCaNJk/23GGpCsTQatJN8PZBhJBb2Vlsvw5lFrSdmt1r7vaz+2EeNR/FitFXwIDAQAB'
comment faire pour les importer et les utiliser pour crypter une chaîne de caractères?
J'ai essayé le code suivant mais RSA.construct() soulève l'exception TypeError: doit être longue, pas str).
from Crypto.PublicKey import RSA
from Crypto.Util import asn1
from base64 import b64decode
keyDER = b64decode(pubkey)
seq = asn1.DerSequence()
seq.decode(keyDER)
keyPub = RSA.construct((seq[0], seq[1]))
print keyPub.encrypt('mysecret', 32)
Grâce.
OriginalL'auteur user21916 | 2014-01-24
Vous devez vous connecter pour publier un commentaire.
J'ai trop eu du mal avec cela. Je l'ai eu à travailler comme cela:
Si vous êtes l'écriture de fichiers, vous pouvez trouver plus facile de traiter avec hex de chaînes au lieu de chaînes binaires. Je suis en utilisant ces fonctions d'assistance beaucoup
/usr/local/lib/python3.6/site-packages/Crypto/PublicKey/RSA.py in encrypt(self, plaintext, K) --> 372 NotImplementedError: Use module Crypto.Cipher.PKCS1_OAEP instead
Vous pourriez avoir à coder le msg comme ça
msg.encode("utf-8")
OriginalL'auteur Chet
Je suis arriver dans
keyPub = RSA.importKey(keyDER)
->RSA.py:588
->ValueError: RSA key format is not supported
J'obtiens la même erreur que @DimaLituiev
J'ai remplacé la simple citation entre guillemets il a bien fonctionné 🙂 pour la variable pubkey
OriginalL'auteur user9527
En utilisant:
avec le paramètre externKey ressembler à la suivante:
Vous ne devriez pas b64decode la externKey et la chaîne doit commencer par "-----COMMENCER à CLÉ PUBLIQUE-----" et "-----FIN de la CLÉ PUBLIQUE-----".
-----BEGIN PUBLIC KEY-----
et-----END PUBLIC KEY-----
et lirekey
à partir d'un fichier,str
ne fonctionne pasOriginalL'auteur EwyynTomato
De la la documentation
OriginalL'auteur Ber
merci @user9527 de voter pour vous
qui a résolu mon problème
mon env: win10x64 python3.6.4 pycrypto2.6.1
voici mon code, chiffrer fin de décrypter, la clé était de quelqu'un du blog.(si U est produite avec "ValueError: clé RSA format n'est pas pris en charge", vérifier que le format de la clé, il doit être warpped avec quelque chose comme "-----BEGIN XXXX CLÉ-----")
la sortie:
OriginalL'auteur 返还击