Wie kann ich C# in einer FIPS-kompatiblen WinXP SP2-Box verwenden, um den Inhalt einer bestimmten Datei eindeutig zu hashen? Ich bin nicht besorgt über die Leistung (noch?).FIPS-kompatibler HashAlgorithm auf WinXP?
Hoffentlich kann jemand auf eine Ausnahme von der "Regel" hinweisen, aber es scheint, dass die "* ServiceProvider" -Klassen FIPS-kompatibel und auf WinXP nicht verfügbar sind, während die "* Managed" -Klassen auf WinXP und nicht FIPS verfügbar sind -konform.
Und MD5 ist out, weil es nicht zuverlässig einzigartig ist (ja, selbst diese geringe Wahrscheinlichkeit ist inakzeptabel für mein Projekt).
Kein Hash-Algorithmus ist zuverlässig eindeutig. Nach dem [Taube-Prinzip] (http://en.wikipedia.org/wiki/Pigeonhole_Principle) können Sie nicht alle möglichen Dateien beliebiger Länge mit einem Hash fester Länge eindeutig darstellen. –
Obwohl dies technisch wahr ist, ist das heutzutage in der Computertechnik nicht sehr nützlich. Die Idee ist, dass Sie bereit sind, das Risiko einzugehen, dass es angesichts der Wahrscheinlichkeiten des Algorithmus nicht einzigartig ist. Es hat sich gezeigt, dass MD5 das Risiko nicht wert ist, aber SHA256 und SHA512 sind es wert. SHA1 fällt irgendwo dazwischen und ist gut genug für viele Menschen, obwohl ich zögern würde, es selbst zu benutzen. Ich würde niemals MD5 benutzen. –