Asp.NETPersonnalBlogSystem/Helpers/SecurityHelper.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Security.Cryptography;
using System.Text;
namespace Asp.NETPersonnalBlogSystem
{
/// <summary>
/// 安全辅助类
/// 提供密码加密、验证等安全相关功能
/// </summary>
public static class SecurityHelper
{
/// <summary>
/// 生成随机盐值
/// </summary>
/// <returns>32位的随机字符串</returns>
public static string GenerateSalt()
{
using (var rng = new RNGCryptoServiceProvider())
{
byte[] saltBytes = new byte[16];
rng.GetBytes(saltBytes);
return Convert.ToBase64String(saltBytes);
}
}
/// <summary>
/// 使用MD5+Salt对密码进行加密
/// </summary>
/// <param name="password">原始密码</param>
/// <param name="salt">盐值</param>
/// <returns>加密后的密码哈希值</returns>
public static string HashPassword(string password, string salt)
{
if (string.IsNullOrEmpty(password))
{
throw new ArgumentNullException(nameof(password));
}
if (string.IsNullOrEmpty(salt))
{
throw new ArgumentNullException(nameof(salt));
}
string saltedPassword = password + salt;
using (MD5 md5 = MD5.Create())
{
byte[] inputBytes = Encoding.UTF8.GetBytes(saltedPassword);
byte[] hashBytes = md5.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("x2"));
}
return sb.ToString();
}
}
/// <summary>
/// 验证密码是否正确
后面还有 31 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
