Authentication implementation
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
namespace WebApp.Authentication;
|
||||
|
||||
/// <summary>
|
||||
/// Utility class for generating BCrypt password hashes for use in User Secrets configuration.
|
||||
/// </summary>
|
||||
public static class PasswordHashGenerator
|
||||
{
|
||||
/// <summary>
|
||||
/// Generates a BCrypt hash for the given password with work factor 11.
|
||||
/// </summary>
|
||||
/// <param name="password">The password to hash</param>
|
||||
/// <returns>BCrypt hash string suitable for storing in User Secrets</returns>
|
||||
public static string GenerateHash(string password)
|
||||
{
|
||||
return BCrypt.Net.BCrypt.HashPassword(password, workFactor: 11);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generates hashes for multiple passwords at once.
|
||||
/// </summary>
|
||||
/// <param name="passwords">Dictionary of label/password pairs</param>
|
||||
/// <returns>Dictionary of label/hash pairs</returns>
|
||||
public static Dictionary<string, string> GenerateHashes(Dictionary<string, string> passwords)
|
||||
{
|
||||
var results = new Dictionary<string, string>();
|
||||
foreach (var kvp in passwords)
|
||||
{
|
||||
results[kvp.Key] = GenerateHash(kvp.Value);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user