forked from xiongyuxing/tiku-backend.net
21 lines
582 B
C#
21 lines
582 B
C#
using System.Security.Cryptography;
|
|
using System.Text;
|
|
using Tiku.Domain.Tenancy;
|
|
|
|
namespace Tiku.Infrastructure.Auth;
|
|
|
|
public static class SmsCodeHashing
|
|
{
|
|
public static string Hash(Guid tenantId, string phone, SmsPurpose purpose, string code)
|
|
{
|
|
var normalized = $"{tenantId:N}:{NormalizePhone(phone)}:{purpose}:{code.Trim()}";
|
|
var hash = SHA256.HashData(Encoding.UTF8.GetBytes(normalized));
|
|
return Convert.ToHexString(hash).ToLowerInvariant();
|
|
}
|
|
|
|
public static string NormalizePhone(string phone)
|
|
{
|
|
return phone.Trim();
|
|
}
|
|
}
|