Heim > Backend-Entwicklung > C++ > Warum schlägt die Rijndael-Entschlüsselung wegen „Ungültiger Auffüllung' fehl und wie kann das Problem behoben werden?

Warum schlägt die Rijndael-Entschlüsselung wegen „Ungültiger Auffüllung' fehl und wie kann das Problem behoben werden?

Mary-Kate Olsen
Freigeben: 2025-01-08 22:21:41
Original
279 Leute haben es durchsucht

Why Does Rijndael Decryption Fail with

Ungültige Auffüllung in der Kryptographie

Frage:

Bei der Verwendung von Rijndael zum Entschlüsseln eines verschlüsselten XML-Dokuments ist eine Ausnahme aufgetreten: „Padding ist ungültig und kann nicht entfernt werden“.

Antwort:

Rijndael (auch bekannt als AES) ist eine Blockverschlüsselung, die Daten in 16-Zeichen-Blöcken verschlüsselt. Durch Auffüllen wird sichergestellt, dass der letzte Teil einer Nachricht immer die richtige Größe hat.

Die Standardauffüllung für Rijndael in .NET ist PKCS#7-Auffüllung. Der in der Frage bereitgestellte Code gibt jedoch den Auffüllmodus nicht explizit an, was zu Diskrepanzen zwischen Verschlüsselungs- und Entschlüsselungsvorgängen führt.

Um dieses Problem zu beheben, muss der Auffüllmodus für die Ver- und Entschlüsselung explizit festgelegt werden. Insbesondere sollte die Padding-Eigenschaft des RijndaelManaged-Objekts auf PaddingMode.PKCS7 festgelegt werden.

Hier ist ein modifizierter Codeausschnitt, der das explizite Festlegen von Auffüllungen beinhaltet:

<code class="language-csharp">public void Cryptography(XmlDocument doc, bool cryptographyMode)
{
    RijndaelManaged key = null;
    try
    {
        // 创建一个新的Rijndael密钥。
        key = new RijndaelManaged()
        {
            Padding = PaddingMode.PKCS7 //显式设置PKCS7填充模式
        };
        // ... 代码其余部分保持不变 ...
    }
    catch (Exception ex)
    {
        // ... 异常处理保持不变 ...
    }
    finally
    {
        // ... 密钥清理保持不变 ...
    }
}</code>
Nach dem Login kopieren

Durch explizites Festlegen des Auffüllmodus können Sie sicherstellen, dass die Verschlüsselungs- und Entschlüsselungsprozesse denselben Auffüllmechanismus verwenden, wodurch auffüllbezogene Ausnahmen behoben werden. Dadurch werden Entschlüsselungsfehler aufgrund inkonsistenter Füllmuster vermieden.

Das obige ist der detaillierte Inhalt vonWarum schlägt die Rijndael-Entschlüsselung wegen „Ungültiger Auffüllung' fehl und wie kann das Problem behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage