Heim >Backend-Entwicklung >C++ >Wie kann ich in C#sicher Hash- und Salzkennwörter in C#salzen?
Einführung
Passwortsicherheit ist in jeder Softwareanwendung von entscheidender Bedeutung. Loltation und Salz sind zwei Schlüsseltechnologien zum Schutz von Kennwörtern, die nicht durchgesickert sind.Davidhayden Code: Grundlegende Erweiterungen und Salz
Davidhaydens Code -Fragment bietet eine grundlegende Implementierung von Passwortauflösungen und Salz. Es verwendet FormsAuthentication -Klassen, um das Kennwort zu streuen, um es in der Konfigurationsdatei zu speichern. Bei binären Blobs wie Erweiterung und Salz wird die Umwandlung zwischen Saite jedoch als unnötig angesehen.
Alternative C# -Methode: Erweiterte Erweiterung und Salz
Die folgenden Verbesserungsmethoden von "Start ASP.NET Security" enthalten einige Verbesserungsfunktionen:
Diese Methode verwendet einen sichereren SHA256 -Algorithmus und führt Streuungen auf Byte -Array anstelle von String durch. Es stellt auch sicher, dass das Salz jedes Passworts eindeutig ist.
<code class="language-csharp">static byte[] GenerateSaltedHash(byte[] plainText, byte[] salt) { HashAlgorithm algorithm = new SHA256Managed(); byte[] plainTextWithSaltBytes = new byte[plainText.Length + salt.Length]; for (int i = 0; i < plainText.Length; i++) { plainTextWithSaltBytes[i] = plainText[i]; } for (int i = 0; i < salt.Length; i++) { plainTextWithSaltBytes[plainText.Length + i] = salt[i]; } byte[] hash = algorithm.ComputeHash(plainTextWithSaltBytes); return hash; }</code>Andere Vorsichtsmaßnahmen
Der Text kann in Byte -Array konvertiert werden.
Schatten können mitEncoding.UTF8.GetBytes(string)
Der gleiche Vergleich zwischen Byte -Array sollte durch Radfahren und Überprüfung jedes Byte durchgeführt werden. Convert.ToBase64String
Convert.FromBase64String
Das obige ist der detaillierte Inhalt vonWie kann ich in C#sicher Hash- und Salzkennwörter in C#salzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!