using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
namespace EncryptTool;
/*
* 作者:菻蔃
* 注意:MD5 加密会被机器容易的破解,请勿用于机密数据
* 版本时间:2024年1月21日
*/
///
/// MD5 加密
///
public static class Md5Encrypt
{
///
/// 魔改版加密,用于加密密码,无法破解,本人也无法知道原密码
///
/// 需要加密的字符串
/// 加密后返回的长度
///
public static string EncryptPassword(string? password, int length = 255)
{
if (string.IsNullOrEmpty(password)) { return string.Empty; }
var result = string.Empty;
var i = 0;
while (result.Length < length)
{
var bytes = MD5.HashData(Encoding.UTF8.GetBytes(password));
var tempStr = Convert.ToBase64String(bytes);
tempStr = Regex.Replace(tempStr, "\\W", "").ToUpper();
if (i % 2 == 0)
{
result += Regex.Replace(tempStr, "[0-9]", "");
}
else
{
result += Regex.Replace(tempStr, "[A-Z]|[a-z]", "");
}
password = tempStr;
i++;
}
return result[..length];
}
}