Die Kompatibilität von Mcrypt mit OpenSSL ist umstritten. Einige Quellen behaupten, dass OpenSSL mit Mcrypt verschlüsselte Daten nicht entschlüsseln kann, während andere vermuten, dass dies durch die Verwendung von Padding möglich sei.
[Beitrag 1](https://stackoverflow.com/a/19748494/ 5834657) besagt, dass eine Entschlüsselung unmöglich ist, während [Post 2](https://stackoverflow.com/a/31614770/5834657) legt nahe, dass dies mit der richtigen Polsterung erreichbar ist. Das im Beitrag bereitgestellte Beispiel-Padding ist jedoch speziell für Mcrypt gedacht und ist möglicherweise nicht auf OpenSSL anwendbar.
Um die Kompatibilität zu testen, haben wir den vorhandenen Mcrypt-Code geändert Verwenden Sie OpenSSL. Die modifizierte Entschlüsselungsfunktion lautet wie folgt:
Wir haben diesen modifizierten Code getestet, indem wir eine Zeichenfolge mit der Mcrypt-Bibliothek verschlüsselt und dann versucht haben, sie mit unserem OpenSSL-basierten Code zu entschlüsseln. Allerdings erhielten wir nur eine leere Antwort. Der Fehler schien aus der Zeile $data = $this->unpad($dec) zu stammen. Als wir diese Zeile auskommentierten, bekamen wir eine durcheinandergebrachte Zeichenfolge, die dem ursprünglichen verschlüsselten Format ähnelte.
Leider war unser Versuch, mit Mcrypt verschlüsselte Daten mithilfe von OpenSSL zu entschlüsseln, erfolglos. Es ist möglich, dass die von Mcrypt verwendete spezifische Auffüllung nicht mit OpenSSL kompatibel ist oder es andere zugrunde liegende Inkompatibilitäten gibt, die eine erfolgreiche Entschlüsselung verhindern.
Weitere Untersuchungen sind erforderlich, um festzustellen, ob es wirklich unmöglich ist, Mcrypt-verschlüsselt zu entschlüsseln Daten mit OpenSSL, oder ob es eine Problemumgehung gibt, die noch entdeckt werden muss.
Das obige ist der detaillierte Inhalt vonKann OpenSSL mit Mcrypt verschlüsselte Daten entschlüsseln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!