0 Frage: RijndaelManaged entschlüsselt mit 8-Byte-Schlüssel

Frage erstellt am Wed, May 8, 2019 12:00 AM

Ich habe den nächsten Code, der auch mit einem ungültigen Schlüssel für RijndaelManaged im Netz-Framework einwandfrei verschlüsselt und entschlüsselt, aber jetzt im netCore funktioniert er nicht, weil er einen 16-Byte-Schlüssel benötigt. Ich möchte diesen Schlüssel neu erstellen die bibliothek in net frameworks macht mit einer schlüsselerweiterung das entschlüsseln in einer net core app aber ich weiß jetzt nicht wie

Ich habe ein ähnliches Problem gefunden, aber in PHP hier RijndaelManaged.CreateEncryptor-Schlüsselerweiterung , aber es sagt "nur die letzten 2 Bytes abhacken", aber von was? und wie vervollständige ich den Rest der Bytes?

//Code tha works in the framework app
///8 bytes
_key = System.Text.ASCIIEncoding.UTF8.GetBytes("abcdefgh");

//16 bytes
_iv = System.Text.ASCIIEncoding.UTF8.GetBytes("abcdefghijklmnop");
_provider = new RijndaelManaged();
_provider.Mode = CipherMode.CBC;
_provider.KeySize = 128;
_provider.CreateEncryptor(_key, _iv)
    
0
  1. Ähm, ja, ein 128-Bit-Verschlüsselungsalgorithmus benötigt einen 128-Bit-Schlüssel. Wenn Sie darauf bestehen, einen String als Schlüssel zu verwenden, führen Sie diesen zuerst durch einen Hash-Algorithmus und nehmen Sie Ihre 16 Bytes von der Ausgabe. Sie haben immer noch weniger als 128 Bit Entropie für Ihre Verschlüsselung.
    2019-05-08 16: 28: 17Z
  2. Haben Sie versucht, die verbleibenden 8 Bytes mit Null zu füllen, um eine Bibliothek mit Ihrem aktuellen Code kompatibel zu machen?
    2019-05-08 16: 29: 09Z
  3. Ja, es benötigt einen 128-Bit-Schlüssel, aber aus irgendeinem Grund funktioniert es mit einem 64-Bit-Schlüssel in der Net Framework-Bibliothek, weil eine "Funktion" den Schlüssel erweitert. Ja, ich habe es versucht Füllen Sie die letzten 8 Bytes und am Anfang auch mit Null, aber es funktioniert nicht
    2019-05-08 18: 49: 10Z
  4. Sie können auch versuchen, die Zeichenfolge zweimal zu wiederholen oder die letzten 8 Bytes der IV zu übernehmen. Wenn sie nicht funktionieren, müssen Sie die Kugel beißen und den alten Code /Algorithmus so ändern, dass er korrekt funktioniert (aber die Kompatibilität mit den vorhandenen Passwörtern verliert).
    2019-05-09 08: 31: 25Z
  5. Nach einer kurzen Recherche kann sich Folgendes als nützlich erweisen: docs.microsoft.com/en-us/dotnet/api/…
    2019-05-09 08: 38: 40Z
0 Antworten                              0                         
Quelle platziert Hier