桓楠百科网

编程知识、经典语录与百科知识分享平台

ASP.NET Core 知识速递 - Day 16:密码哈希器

1. 什么是 Password Hasher?
Password Hasher是一种用于对用户密码进行安全处理的工具或算法。它会将用户输入的密码进行 哈希(Hashing) 处理,生成一串 不可逆 的加密字符串(哈希值)。在用户登录时,系统将输入的密码进行同样的哈希操作,再与数据库中的 已存储哈希值 进行对比验证。
2. 为什么要使用Password Hasher?
安全性:防止密码被直接存储,即使数据库泄露也难以破解。
不可逆性:哈希算法是 单向加密,无法从哈希值还原原始密码。
防彩虹表攻击:使用 加盐 (Salt),让相同密码生成不同哈希值。
抗暴力破解:采用迭代算法(如 PBKDF2bcrypt)延长破解时间。
3. 常用Password Hasher算法
bcrypt : 最常用,内置盐值,自动迭代,安全性高。
PBKDF2 : 使用多次迭代,广泛应用于企业级安全系统。
Argon2 : 密码哈希竞赛冠军,具有抗 GPU 攻击特性。
SHA-256 :快速但需额外加盐,单独使用易受彩虹表攻击。
4. ASP.NET Core 中使用Password Hasher算法
代码:
using Microsoft.AspNetCore.Identity;
var app = WebApplication.Create();
app.Run(context =>{ var password = context.Request.Query["password"];
if (string.IsOrWhiteSpace(password)) password = "123456";
var usr = new User(); var hasher = new PasswordHasher(); var hashedPassword = hasher.HashPassword(usr, password);
var isPasswordMatch = hasher.VerifyHashedPassword(usr, hashedPassword, password);
return context.Response.WriteAsync($"Password : {password} => Hashed : {hashedPassword} \nPassword Matched : {isPasswordMatch}");});
app.Run();
public record User();
运行效果如下:
源代码地址:
https://github.com/bingbing-gui/AspNetCore-Skill/tree/master/src/aspnetcore-knowledge-point/passwordhaser

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言