Ich kann anscheinend kein schönes, sauberes Beispiel für die Verwendung der AES 128-Bit-Verschlüsselung finden.
Hat jemand einen Beispielcode?
c#
cryptography
aes
rijndaelmanaged
Dan Esparza
quelle
quelle
Antworten:
Wenn Sie nur den integrierten Krypto-Anbieter RijndaelManaged verwenden möchten, lesen Sie den folgenden Hilfeartikel (er enthält auch ein einfaches Codebeispiel):
Und nur für den Fall, dass Sie die Probe in Eile brauchen, hier ist sie in ihrer ganzen plagiierten Pracht:
quelle
using ()
Block entsorgt automatisch das myRijndael-Objekt (und jedes andere RijndaelManaged-Objekt in diesem Beispiel). Vielleicht war Ihr Kommentar für eine frühere Version der Antwort, oder der Link zeigte schlechte Beispiele, aber das ist heute nicht der Fall.Ich musste kürzlich in meinem eigenen Projekt erneut darauf stoßen - und wollte den etwas einfacheren Code teilen, den ich verwendet habe, da diese Frage und die Reihe von Antworten bei meinen Suchanfragen immer wieder auftauchten.
Ich werde nicht auf die Sicherheitsbedenken eingehen, wie oft Dinge wie Ihr Salt- und Initialisierungsvektor aktualisiert werden sollen - das ist ein Thema für ein Sicherheitsforum, und es gibt einige großartige Ressourcen, die Sie sich ansehen können. Dies ist einfach ein Codeblock, der
AesManaged
in C # implementiert werden soll .Der Code ist sehr einfach zu bedienen. Es erfordert buchstäblich nur Folgendes:
Standardmäßig verwendet die Implementierung AesManaged - Sie können jedoch auch jedes andere einfügen
SymmetricAlgorithm
. Eine Liste der verfügbarenSymmetricAlgorithm
Erben für .NET 4.5 finden Sie unter:http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm.aspx
Zum Zeitpunkt dieses Beitrags enthält die aktuelle Liste:
AesManaged
RijndaelManaged
DESCryptoServiceProvider
RC2CryptoServiceProvider
TripleDESCryptoServiceProvider
Um
RijndaelManaged
den obigen Code als Beispiel zu verwenden, würden Sie Folgendes verwenden:Ich hoffe, das ist hilfreich für jemanden da draußen.
quelle
The name 'GetBytes' does not exist in the current context
. Kann ich Sie fragen, welche Version des .Net-Frameworks Sie verwenden?Schauen Sie sich das Beispiel hier an.
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged(v=VS.100).aspx#Y2262
Das Beispiel auf MSDN wird nicht normal ausgeführt (es tritt ein Fehler auf), da der Anfangswert von Anfangsvektor (iv) und Schlüssel nicht vorhanden ist . Ich füge 2 Zeilen Code hinzu und arbeite jetzt normal.
Weitere Details siehe unten:
quelle
Verwenden Sie AES oder implementieren Sie AES? Zur Verwendung von AES gibt es die Klasse System.Security.Cryptography.RijndaelManaged.
quelle
Ein vollständigeres Beispiel, das zusätzlich zur AES-Verschlüsselung eine Schlüsselableitung durchführt, finden Sie in der Antwort und in den Links unter Erhalten der AES-Verschlüsselung für Javascript und C # .
BEARBEITEN Sie
eine Randnotiz: Javascript-Kryptographie als schädlich angesehen. Die Lektüre wert.
quelle
quelle
http://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt
quelle
Versuchen Sie diesen Code, vielleicht nützlich.
1.Erstellen Sie ein neues C # -Projekt und fügen Sie den folgenden Code zu Form1 hinzu:
2.Erstellen Sie clsCrypto.cs und kopieren Sie Einfügen folgt Code in Ihrer Klasse und führen Sie Ihren Code aus. Ich habe MD5 verwendet, um Initial Vector (IV) und KEY of AES zu generieren.
quelle
Sie können ein Passwort aus einem Textfeld wie einem Schlüssel verwenden ... Mit diesem Code können Sie Text, Bild, Word-Dokument, PDF ... verschlüsseln / entschlüsseln.
Passwort vom Textfeld in Byte-Array konvertieren ...
quelle
Hier ist ein ordentlicher und sauberer Code, um den in der C # -Aufrufverschlüsselungsfunktion als implementierten AES 256-Algorithmus zu verstehen
encryptedstring = cryptObj.Encrypt(username, "AGARAMUDHALA", "EZHUTHELLAM", "SHA1", 3, "@1B2c3D4e5F6g7H8", 256);
quelle