25 Stimmen

Gibt es einen alternativen Hashing-Algorithmus zu MD5 für FIPS-fähige Systeme?

Immer wenn ich versuche, MD5 auf einem Windows XP-Rechner zu verwenden, auf dem FIPS aktiviert ist, erhalte ich eine System.InvalidOperationException .

Gibt es einen alternativen Algorithmus, den ich anstelle von MD5 bei FIPS verwenden sollte?

20voto

Borja Punkte 2138

MD5 ist nicht FIPS-konform. Sie können anstelle von MD5 einen der folgenden Hashing-Algorithmen verwenden:

13voto

Cody Gray Punkte 229889

Wenn Sie die FIPS-Konformität in den Windows-Sicherheitsrichtlinieneinstellungen erzwingen, erklären Sie, dass Sie nur FIPS-zertifizierte Verschlüsselungs- und Hash-Algorithmen verwenden werden. MD5 ist no einen dieser zugelassenen Hash-Algorithmen, und deshalb wird die Ausnahme ausgelöst.

Die Abhilfe ist einfach: Wählen Sie einen anderen Hashing-Algorithmus. Das .NET Framework bietet viele andere Optionen in der System.Security.Cryptography Namensraum . Wählen Sie einen Algorithmus aus der SHA-Familie. Ich kann mir keinen Grund vorstellen, warum Sie MD5 im Gegensatz zu einer der Alternativen verwenden sollten.

7voto

ManishM Punkte 563

Sie können MD5Digest aus Org.BouncyCastle.Crypto.Digests verwenden

MD5Digest hash = new MD5Digest();

public byte[] Hash(byte[] input)
{
     hash.BlockUpdate(input, 0, input.Length);
     byte[] result = new byte[hash.GetDigestSize()];
     hash.DoFinal(result, 0);
     return result;
}

public string Hash(string input)
{
     var data = System.Text.Encoding.Unicode.GetBytes(input);
     hash.BlockUpdate(data, 0, data.Length);
     byte[] result = new byte[hash.GetDigestSize()];
     hash.DoFinal(result, 0);

     return Hex.ToHexString(result).ToUpper();
}

1voto

tshort Punkte 11

Für kryptographisch Hashing-Zwecke können Sie SHA1, SHA2 oder SHA3 verwenden, auf Wunsch mit HMAC.

Wenn Sie MD5 verwenden möchten für nicht kryptografisch dann ist das in Ordnung, aber Sie müssen Ihre eigene Implementierung bereitstellen. Beispiele hierfür sind:

  • Hashing von Dateien zur Ermittlung von Duplikaten
  • Interne Hash-Tabellen-Implementierungen
  • Validierung von Dateien anhand ihrer MD5-Hashes

Der letzte Punkt ist fragwürdig; die Validierung von SHA1/SHA2-Hashes wäre besser, und es hängt von der Validierung ab (z. B. ob sie während der Übertragung beschädigt wurde oder ob es sich um eine Paketauthentifizierung handelt).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X