2016-04-28 12 views
1

Covert Ich simuliere die Anmeldung einer Website, und der Server Feedback ein "Pubkey" für RSA-Verschlüsselung. Ich sollte mein Passwort mit dem "Pubkey" verschlüsseln. Der Inhalt ist:Wie kann ich eine Zeichenfolge in das Format von "BEGIN RSA PUBLIC KEY"

-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWgW3gsfqzrID7Bz+pfcHD1TMP 
CFAE0/1fnJnPDumXD6p75LTCpkA1jxVFpunLqIgKtSr8M84z5dyX4QQ9Rtb4tcd6 
3ptgQZkoIGqrVdwskL8pSkTjI6zkG4ebB5UmlNiRQw7TcwmufOfYfAS94PGZaDxH 
wFGtMyOvP2UXBxduMwIDAQAB 
-----END PUBLIC KEY----- 

Nun, die Frage ist, ich es in das Format „RSAPublicKey“ mit dem rsa Paket von python2.7.8 konvertieren fehlgeschlagen.

ERROR CODE:

key = rsa.key.PublicKey.load_pkcs1(self.publickey["pubkey"].encode("utf-8"), "PEM") 

ERROR TIPP:

ValueError: No PEM start marker "-----BEGIN RSA PUBLIC KEY-----" found 

würde ich das Recht "rsapublickey" für den Einsatz:

password_rsaed = base64.b64encode(rsa.encrypt(self.password.encode("utf-8"), key)) 

Antwort

0

I'va bekam ein Verfahren zur Lösung der Problem. Es ist:

rsa.PublicKey.load_pkcs1_openssl_pem(cls, keyfile) 

es eine PKCS # 1.5 PEM-kodierte Public-Key-Datei von OpenSSL lädt, und kann den Inhalt beginnend mit "----- BEGIN PUBLIC KEY -----" und kehrt eine erkennen Publickey-Objekt.

print(type(self.publickey["pubkey"].encode("utf-8"))) 
key = rsa.PublicKey.load_pkcs1_openssl_pem(self.publickey["pubkey"].encode("utf-8")) 
print(type(key)) 

ERGEBNISSE:

<class 'bytes'> 
<class 'rsa.key.PublicKey'> 

TIPS: Die Verfahren sind aus python3.

Verwandte Themen