Я использую данные по умолчанию, предоставленные ASP.NET 4.5 MVC и Entity Framework. Я могу создать пользователей с паролями, и хешированный пароль появится в базе данных. Я пытаюсь выяснить, генерируется ли этот хеш с использованием алгоритма SHA1 с более длительным доверием или алгоритма SHA2 (будь то SHA256, SHA512 и т. Д.).Использует ли ASP.NET SHA256 или SHA1?
Статьи, которые, кажется, говорят, что по умолчанию SHA256:
https://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770148
статей, которые, кажется, говорят, что по умолчанию в SHA1:
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
Когда я по цепочке вниз, я в конечном итоге внутри класса PasswordHasher.cs -> HashPassword() -> Crypto.HashPassword(), который я могу видеть, использует Rfc2898DeriveBytes, который затем имеет кучу вещей, о HMACSHA1.
Могут ли мои пароли получать хэшированные SHA256 или SHA1? Легкий способ по умолчанию SHA256?
Если это помогает, вот фиктивный пароль берется из моей локальной среды: AIPfkvy5v59jmVZdPpU9QfUMoToCQ + Rp3dBT7m9RwMKZai5/61REkN/0InCtxKPUOQ ==
[Комментарии] (https://github.com/aspnet/Identity/blob/a8ba99bc5b11c5c48fc31b9b0532c0d6791efdc8/ SRC/Microsoft.AspNetCore.Identity/Р asswordHasher.cs) в исходном коде говорит SHA1 в версии 2 и SHA256 в версии 3 – Thangadurai
@Thangadurai и версия 3 доступна только в ASP.NET Core, а не в ASP.NET 4.5 правильно? – scottndecker
Похоже, что хэш-алгоритм по умолчанию был изменен на SHA256 с .NET 4.0 и далее. Я не мог найти официальных документов, в которых говорится об этом изменении. – Thangadurai