So rufen Sie rijndaelalg.createeencryptor in c # korrekt an, wenn Sie viele unabhängige Dateien speichern

StackOverflow https://stackoverflow.com/questions/3273672

Frage

In meiner Situation habe ich eine Reihe von Dateien, die auf einem Server gespeichert werden. Jede dieser Dateien wird von einer C # -Anwendung erstellt, die ich schreibe.

hintergrund: Für diese Anwendung ist die erforderliche Zeit, die zum Verschlüsseln benötigt wird

Jede Datei ist nicht verwandt und ich brauche den Inhalt, der von Sysadmin oder jedem, der einen Halt der Festplatte bekommt, vor dem Snooping geschützt werden muss (annehmen einen schlechten Kerl)

Mein Verständnis ist Rijndaelalg ist ein solider Algorithmus für diese Art von Operation? Angenommen, dies ist Informationen, ist korrekt, wie Sie die Funktion RijnDaelalg.createencryptor richtig verwenden?

Die Benutzerfreundlichkeit, die ich möchte, ist, dass mein Benutzer ein Passwort eintippen soll, angenommen, dass das Passwort ein gutes Passwort ist.

meine fragen sind

    .
  1. Wie konvertieren Sie am besten einen von Benutzer übergebenen String (C # 'String) in ein Byte []? Ich gehe davon aus, dass ich das Problem um das Problem hat, 0 auf jeden anderen Charakter zu haben? Was ist der beste Weg, um diese Konvertierung zu erledigen?

  2. Was benutze ich für die IV? Es ist mein Verständnis, dass dies ein Wert ist, der besiedelt sein sollte (obwohl MSDN sagt, dass es in Ordnung ist, "null" zu passieren). Was verwende ich für diesen Wert? Beachten Sie sich für meine Situation, ich habe ein paar unabhängige Dateien, die unabhängig voneinander entschlüsselt werden müssen.

    Was ist, wenn das IV bekannt ist, ist das ein Problem? (Kann ich einen Hash des Dateinamens verwenden, da es ein eindeutiger Wert ist)

  3. Gibt es einen besseren Algorithmus als Rijndaelalg, um viele unabhängige Dateien mit demselben Passwort zu verschlüsseln?

War es hilfreich?

Lösung

q1.Normalerweise verwende ich die GetBytes-Methode der UTF8-Klasse, um Zeichenfolgen in Byte-Arrays umzuwandeln.

generasacodicetagpre.

q2.Jedes Mal, wenn Sie eine Instanz der RijndaelManaged-Klasse erstellen, wird ein iv für Sie zufällig für Sie generiert (mit der IV-Eigenschaft zugänglich).Sie können dies erneut randomisieren, indem Sie die GenerateIV () -Methode aufrufen.

Wenn Sie diese IV benötigen, um Daten zu entschlüsseln, können Sie diese IV möglicherweise nicht so besser speichern, anstatt ein einzigartiges IV pro Datei zu haben.Wenn Sie alle Ihre Dateien mithilfe einer statischen IV verschlüsseln, stellen Sie sicher, dass Sie die IV einstellen, wenn Sie eine neue Instanz der RijndaelManaged-Klasse erstellen, wenn Sie eine Datei, wenn Sie eine Datei entschlüsseln.

q3.Rijndaelmanaged / AES ist der sicherste Algorithmus da draußen, ich würde nichts benutzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top