gpt4 book ai didi

c# - 如何获得与 FormsAuthentication.HashPasswordForStoringInConfigFile ("asdf", "MD5") 方法相等的哈希值?

转载 作者:太空狗 更新时间:2023-10-29 23:55:23 25 4
gpt4 key购买 nike

正在寻找一种方法或指向正确的方向,以便我可以返回一个与 FormsAuthentication.HashPasswordForStoringInConfigFile("asdf", "MD5") 返回的哈希值相等的哈希值。我一直在尝试这样的代码:

        ASCIIEncoding encoding = new ASCIIEncoding();
encoding.GetBytes("asdf");

var hashedBytes = MD5.Create().ComputeHash(bytes);
var password = encoding.GetString(hashedBytes);

我在散列方面不是那么强,所以我不知道下一步该去哪里。我总是以疯狂的特殊字符结尾,而 FormsAuth 方法总是返回可读的内容。

只是试图从一些内部业务类中删除对 FormAuthentication 的外部依赖。

最佳答案

这是反射器的输出:

您的问题是没有使用 UTF8

public static string HashPasswordForStoringInConfigFile(string password, string passwordFormat)
{
HashAlgorithm algorithm;
if (password == null)
{
throw new ArgumentNullException("password");
}
if (passwordFormat == null)
{
throw new ArgumentNullException("passwordFormat");
}
if (StringUtil.EqualsIgnoreCase(passwordFormat, "sha1"))
{
algorithm = SHA1.Create();
}
else
{
if (!StringUtil.EqualsIgnoreCase(passwordFormat, "md5"))
{
throw new ArgumentException(SR.GetString("InvalidArgumentValue", new object[] { "passwordFormat" }));
}
algorithm = MD5.Create();
}
return MachineKeySection.ByteArrayToHexString(algorithm.ComputeHash(Encoding.UTF8.GetBytes(password)), 0);
}

这是您更新后的代码:

    encoding.GetBytes("asdf");

var hashedBytes = MD5.Create().ComputeHash(bytes);
var password = Encoding.UTF8.GetString(hashedBytes);

关于c# - 如何获得与 FormsAuthentication.HashPasswordForStoringInConfigFile ("asdf", "MD5") 方法相等的哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4204993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com