Die RSA -Entschlüsselung mit dem privaten Schlüssel scheitert mit Python [geschlossen]Python

Python-Programme
Anonymous
 Die RSA -Entschlüsselung mit dem privaten Schlüssel scheitert mit Python [geschlossen]

Post by Anonymous »

Ich habe den öffentlichen Schlüssel RSA-zerryppften Daten (32 Bytes, explodiert auf 256), die ich mit dem privaten Schlüssel entschlüsselt habe. RSA Public entschlüsselt, einen privaten Schlüssel in einen öffentlichen Schlüssel zu verwandeln und mit diesem privaten Schlüssel öffentlich zu entschlüsseln. Aber ich habe keinen Kleber, wie man diese Arbeit macht, ich bekomme immer noch nur den Sentinel als Ergebnis. /> Der private Schlüssel hat keine Passphrase.

Code: Select all

from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.primitives.asymmetric import padding

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
from Crypto import Random
from Crypto.Math.Numbers import Integer
from Crypto.Cipher import PKCS1_OAEP

def decryptRsa(rsaEncryptedData):

class SwappedRsaKey(RsaKey):
def _encrypt(self, plaintext):
# normally encrypt is p^e%n
return int(pow(Integer(plaintext), self._d, self._n))
def _decrypt(self, ciphertext):
# normally decrypt is c^d%n
return int(pow(Integer(ciphertext), self._e, self._n))

variant1 = 0  # tried 0/1
if variant1:
f=open("res\key.pem")
priv = f.read()
f.close()
rky=RSA.import_key(priv)
cipher = PKCS1_v1_5.new(rky)
sentinel = Random.new().read(len(rsaEncryptedData))
rky.__class__ = SwappedRsaKey
decryptData = cipher.decrypt(rsaEncryptedData, sentinel)
if decryptData == sentinel:
print("rsa decrypt failed!")
return
else:
fh =open("res\key.pem","rb")
privkey = serialization.load_pem_private_key(fh.read() , password=None)
fh.close()

decryptData = privkey.decrypt(rsaEncryptedData,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label = None
)
)

return decryptedData
Das gewünschte Verhalten besteht darin, die vorherigen verschlüsselten Daten zu erhalten. Dann könnte ich einfach cipher.decrypt () . Ich weiß nur, es ist PKCS1.5 und SHA256. Mir wurde gesagt, dass eine Standardpolstermethode verwendet wurde. Es scheint, dass ich zuerst untersuchen kann, wie die Daten verschlüsselt wurden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post