Meine nächste Aufgabe wird es sein, Passwörter zu verschlüsseln. Ich arbeite an der Datenbankzugriffsebene und mein Kollege hat diese Anfrage gestellt: Implementiere einen SHA-512 Hash auf einer leeren Methode. Wie kann ich das tun?
Ganz einfach ein einfacher Prozess:
%Vor% hash
enthält jetzt einen nicht umkehrbaren Hash der ursprünglichen Daten, die Sie hashed wollten. Überprüfen Sie auch MSDN . Ein paar Anmerkungen:
Sie sollten bcrypt
Wenn Sie wirklich SHA512 verwenden müssen, sollten Sie die SHA512Managed
verwenden. Klasse , wie andere Antworten erwähnt haben.
Stellen Sie sicher, Ihren Hash zu salzen.
Wie hasse ich ein Passwort?
Mit einem Salz. Wirklich.
Niemals, jemals dies tun:
%Vor%Aber das:
%Vor%Dies ist einer der am meisten missverstandenen "Tricks des Handels". Die meisten Menschen wissen nicht, was ein "Salz" ist und wenn Sie es ihnen erklären, halten sie es für sinnlos.
Die Wahrheit ist: SHA-512 oder MD5 oder ein sehr schwacher Hash, wenn Rainbow-Tabellen vorberechnet sind, macht keinen Unterschied. SHA-65536, sollte es existieren (ich bin hier witzig), wäre nicht besser als jeder andere Hash-Algorithmus, sobald Rainbow-Tabellen vorberechnet sind.
Ein groß genug "Salz" macht Regenbogen Tische unmöglich:
Beachten Sie, dass, selbst wenn Sie vollständig verstehen, wie Hashes, Salz und Regenbogen Tabellen beziehen (und damit verstehen, warum der Wikipedia-Artikel besagt: "Ein Salz wird oft mit Hash-Passwörter verwendet, um diesen Angriff schwieriger, oft undurchführbar. ") Es gibt eine sehr hohe Wahrscheinlichkeit, dass Ihre Mitarbeiter dies nicht tun. Genauso wie es sehr wahrscheinlich ist, dass die meisten Leute in diesem Thread dieses Thema nicht verstehen.
Ich habe hier auf SO Antworten mit 30 Upvotes gesehen, wo jemand, der nicht verstand, was ein Salz war, mit Techno-Schlagwörtern kam, um seine Position zu verteidigen ... Und doch hatte er all diese Upvotes (zu faul dazu) finde die Frage, aber es war episch).