Ich habe einen Kunden, der uns benötigt, um Blowfish EZB Verschlüsselung mit CipherMode 0, Ausgang 1 zu verwenden. Ich habe versucht, dafür zu lösen, aber ich bleibe stecken. Wie behebe ich meinen Code?Blowfish ECB-Verschlüsselung in C# Implementierung
Hier sind die vollständigen Client Anweisungen:
Algorithmus: Blowfish · Modus: EZB · Padding: ist * Anfangsvektor PKCS5Padding unnötig, weil wir ECB-Modus verwenden.
Beispiel · Verschlüsseln Schlüssel: 2fs5uhnjcnpxcpg9 → Plain Text: 3280: 99: 20120201123050 → Cipher Text: daa745f1901364c0bd42b9658db3db96336758cd34b2a576 * Bitte Cipher Text mit 16 hexadezimalen Zeichen halten. * Bitte generieren Sie Cipher Text ohne "Salz".
Ich muss dies in C# schreiben. Hier ist, was ich tat, aber es scheint nicht zu funktionieren:
string member_id = "3280";
string panelType = "99";
string RandomString = "20120201123050";
string encryptionKey = "2fs5uhnjcnpxcpg9";
string cryptstr = member_id + ":" + panelType + ":" + RandomString;
string plainText = cryptstr;
BlowFish b = new BlowFish(encryptionKey);
string cipherText = b.Encrypt_ECB("3280:99:20120201123050");
Das Ergebnis nicht daa745f1901364c0bd42b9658db3db96336758cd34b2a576 ist. Was habe ich falsch gemacht?
Wow, das ist über die schlechteste Sicherheits weise! Selbst der Autor von Blowfish benutzt es nicht mehr, jetzt benutzt er AES. Verwenden Sie nicht den ECB-Modus, es ist unsicher, siehe [ECB-Modus] (https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_Codebook_.28ECB.29), scrollen Sie nach unten zum Penguin. – zaph
Was importieren Sie, um die Blowfish-Klasse zu erhalten? Und da ich sehe, dass Sie nichts für die Auffüllung einstellen, was ist der Standard, den Doc für die Bibliothek, die diese Blowfish-Klasse enthält, sagt, dass sie verwendet? –
Schließlich ist es an der Zeit, die Sicherheit zu aktualisieren, AES ist seit 15 Jahren verfügbar, der Kunde sollte sich wirklich anstrengen, weitere 15 Jahre zu warten wäre lächerlich. – zaph