创建 MD5 哈希 (盐值+值)。

4

我可以帮您将以下PHP代码翻译成C#,如下:

PHP代码:

<?php
    $salt = "salt";
    $value = "hello";
    $password_hashed = md5($salt.$value);
?>

我需要任何形式的帮助。一直在测试以下内容:https://dev59.com/fXM_5IYBdhLWcg3wn0lO#1300927,但它只会返回错误的字符串。
        var salt = System.Text.Encoding.UTF8.GetBytes("salt");
        var value = System.Text.Encoding.UTF8.GetBytes("hello");

        var hmacMD5 = new HMACMD5(salt);
        var saltedHash = hmacMD5.ComputeHash(value);

        string hex = BitConverter.ToString(saltedHash);
        MessageBox.Show(hex.Replace("-", ""));

响应: https://gyazo.com/340fe77979c1b0b531d07a8050ce66d1

响应应该看起来像这样:06decc8b095724f80103712c235586be


5
好的,我将尝试进行翻译。请提供需要翻译的内容。 - Joe Phillips
1
你说的“不能使用”是什么意思?网络上有很多关于如何将字节数组转换为十六进制字符串的示例。 - SJuan76
更新了我的问题。 - d4ne
1个回答

8

希望这能有所帮助,以下是对给定链接的一些修改

class Program {
    static void Main(string[] args) {
        var provider = MD5.Create();
        string salt = "S0m3R@nd0mSalt";
        string password = "SecretPassword";
        byte[] bytes = provider.ComputeHash(Encoding.ASCII.GetBytes(salt + password));
        string computedHash = BitConverter.ToString(bytes);

        Console.WriteLine(computedHash.Replace("-", ""));
    }
}

2
@d4ne请不要使用MD5进行安全加密。它已经完全被破解了。 - Camilo Terevinto
它不是用来做密码的,而是用来创建一个票据编号的。 - d4ne
@CamiloTerevinto:你建议使用SHA512加一些循环来防止暴力攻击吗? - Hadi Susanto
我是这样使用的:它的目的是创建一个票据ID,例如url.com/viewticket.php?id=md5(salt+value)。 - d4ne
1
如果您需要一个票据ID,请使用Guid.NewGuid。 - Joe Phillips
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接