2017-12-29 20 views
0

Ich schreibe einen Crawler mit Python. Die Website verwendet JSEncrypt zum Verschlüsseln des Passworts. Der JS-Code lautet wie folgt:Python RSA-Verschlüsselung unterscheidet sich von JSEncrypt?

var pubkey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDB3Xn/+WP5OVbA8hCj3zuTlqAJ+CVt5UPHi1TYTbsBzEZ0W0+tgn9YElA9hNIi5ElFTicpGCYW4w+B2zmniSLKy3sqItT1wNCt6zGJ7lkUCkhLSIY4mp9Tqs8hn01/3HNnqDRBPhFcmA99Vy+SOoTUvCOUMiGp4ENruyxkvEp5vwIDAQAB" 
var encrypt = new JSEncrypt(); 
encrypt.setKey(pubkey) 
encrypt.encrypt("123") 

Und meine Python-Codes sind:

from Crypto.Cipher import PKCS1_v1_5 
from Crypto.PublicKey import RSA 
import base64 
pubkey = '''-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDB3Xn/+WP5OVbA8hCj3zuTlqAJ 
+CVt5UPHi1TYTbsBzEZ0W0+tgn9YElA9hNIi5ElFTicpGCYW4w+B2zmniSLKy3sq 
ItT1wNCt6zGJ7lkUCkhLSIY4mp9Tqs8hn01/3HNnqDRBPhFcmA99Vy+SOoTUvCOU 
MiGp4ENruyxkvEp5vwIDAQAB 
-----END PUBLIC KEY-----''' 
rsa_key = RSA.importKey(pubkey) 
cipher = PKCS1_v1_5.new(rsa_key) 
print base64.b64encode(cipher.encrypt("123")) 

Aber ihre Ergebnisse sind unterschiedlich. Außerdem stellte ich fest, dass diese Codes jedes Mal unterschiedliche Verschlüsselungsausgaben erzeugen. Mit demselben Schlüssel und Klartext, sollte nicht rsa Algorithmus die gleiche Ausgabe zurückgeben?

+0

BTW: JSEncryption kann http://travistidwell.com/jsencrypt/example.html hier. –

Antwort

0

Versuchen Sie, JSEncrypt zweimal auszuführen, sind die Ausgänge gleich?

Theoretisch sollten die Ausgaben jedes Mal anders sein.

https://stackoverflow.com/a/16329374

+0

Danke, der Code funktioniert. –

+0

Eine zu überprüfende Maßnahme besteht darin, dass Sie die Daten mit dem richtigen privaten Schlüssel entschlüsseln können. –

Verwandte Themen