繁体   English   中英

C#哈希算法MD5(Sha1(pass))

[英]C# hashing algorithm MD5(Sha1(pass))

所以基本上我得到了这个算法:

MD5(SHA1(PASSWORD));

我正在尝试用C#计算它,但是我没有运气。 这是我当前的代码:

string pass = txtPass.Text;
string sha1 = GetSha1(pass);
string md5 = CalculateMD5Hash(sha1);
textBox1.Text = md5;

但是,它不会输出正确的数据,我知道这是正确的。

例如,如果我要将“ stackoverflow”转换为sha1,我将得到:fdfeb16f096983ada02db49d46a8154475d700ae

那么如果我对md5说sha1我会得到:341fe8f2ac67f95f20d2d0b721d53847

但是,如果我让我的C#脚本执行此操作,则会得到以下信息:381678D7800D83D014DB3DF1B704FE23

这里有些事情没有意义,我不确定这是什么。

MD5(SHA1("stackoverflow")); //341fe8f2ac67f95f20d2d0b721d53847

public String MD5(String input)
{
    System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
    Byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
    Byte[] hash = md5.ComputeHash(inputBytes);

    StringBuilder sb = new StringBuilder();
    for(int i = 0; i < hash.Length; i++)
    {
        sb.Append(hash[i].ToString("X2"));
    }
    return sb.ToString();
}

public String SHA1(String s)
{
    Byte[] bytes = Encoding.UTF8.GetBytes(s);
    var sha1 = System.Security.Cryptography.SHA1.Create();
    Byte[] hashBytes = sha1.ComputeHash(bytes);
    return HexStringFromBytes(hashBytes);
}

public String HexStringFromBytes(Byte[] bytes)
{
    var sb = new StringBuilder();
    foreach(byte b in bytes)
    {
        var hex = b.ToString("x2");
        sb.Append(hex);
    }
    return sb.ToString();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM