Ich verwende die Standard-Identity-Sachen von ASP.NET 4.5 MVC und Entity Framework. Ich kann Benutzer mit Passwörtern erstellen und das Hash-Passwort wird in der Datenbank angezeigt. Ich versuche herauszufinden, ob dieser Hash mit dem nicht mehr vertrauenswürdigen SHA1-Algorithmus oder dem SHA2-Algorithmus (sei es SHA256, SHA512, etc.) generiert wird.Verwendet ASP.NET SHA256 oder SHA1?
Artikel, die scheinen es standardmäßig SHA256 zu sagen:
https://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770148
Artikel, die es standardmäßig SHA1 zu sagen scheinen:
https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/consumer-apis/password-hashing
https://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.aspx
Wenn ich die Kette nach unten folgen, habe ich am Ende in der PasswordHasher.cs Klasse nach oben -> HashPassword() -> Crypto.HashPassword(), die ich sehen kann, ist Rfc2898DeriveBytes verwendet, die dann ein paar Sachen haben über HMACSHA1.
So werden meine Passwörter von SHA256 oder SHA1 gehackt? Einfacher Weg zum Standard zu SHA256?
Wenn es hilft, hier ist ein Dummy-Passwort aus meiner lokalen Umgebung genommen: AIPfkvy5v59jmVZdPpU9QfUMoToCQ + Rp3dBT7m9RwMKZai5/61REkN/0InCtxKPUOQ ==
[Kommentare] (https://github.com/aspnet/Identity/blob/a8ba99bc5b11c5c48fc31b9b0532c0d6791efdc8/ src/Microsoft.AspNetCore.Identität/P asswordHasher.cs) auf den Quellcode sagt SHA1 in Version 2 und SHA256 in Version 3 – Thangadurai
@Thangadurai und Version 3 ist nur in ASP.NET Core, nicht in ASP.NET 4.5 richtig? – scottndecker
Der Standard-Hash-Algorithmus wurde ab .NET 4.0 in SHA256 geändert. Ich konnte keine offiziellen Dokumente finden, die über diese Veränderung sprechen. – Thangadurai