Ich bin ein Passwort Salz/Hash-Verfahren für meine .NET-Anwendung zu schreiben, vor allem im Anschluss an die Führung dieses Artikels: http://www.aspheute.com/english/20040105.aspHash auf Unicode Passwort
Grundsätzlich ist der Code, der die gesalzene Hash für die Berechnung ist dies:
Allerdings möchte ich zulassen, dass Benutzer Unicode-Zeichen in ihrem Kennwort verwenden können, wenn sie möchten. (Dies scheint eine gute Idee; kann jemand einen Grund denken, ist es nicht?)
Allerdings weiß ich nicht eine Tonne über wie Unicode funktioniert, und ich mache mir Sorgen, wenn ich nur beide Referenzen von System.Text.Encoding.ASCII
zu ändern System.Text.Encoding.Unicode
kann der Hash-Algorithmus einige Byte-Kombinationen erzeugen, die keine gültigen Unicode-Zeichen bilden und der GetString-Aufruf wird ausflippen.
Ist dies ein gültiges Anliegen, oder wird es in Ordnung sein?
Guter Punkt. Das Problem bezieht sich nicht nur auf die Unicode-Implementierung. Die vorhandene ASCII-Implementierung ist ebenfalls fehlerhaft. –
Vielen Dank für diesen aufschlussreichen Kommentar zur ASCII-Codierung. Das erinnert mich an einen Beitrag von Eric Lippert, dessen Moral lautet: "Benutze kein Kryptosystem, das du nicht vollständig verstehst" (http://blogs.msdn.com/b/ericlippert/archive/2009/12/ 14/use-the-right-tool-für-den-job.aspx). P.S. - Ich habe gerade mein C# in Depth 2ed Ebook erhalten, freue mich darauf, etwas Zeit damit zu verbringen! –