【问题标题】:C# md5 Hash and PhpC# md5 哈希和 PHP
【发布时间】:2015-07-07 09:45:44
【问题描述】:

我在 c# 中使用 md5 哈希加密了一个字符串,并使用下面的代码将其存储到 mysql 数据库中。

function getMd5Hash(string md5)
{
    string md5;
    MD5 md5hash = new MD5CryptoServiceProvider();
    md5hash.ComputeHash(ASCIIEncoding.ASCII.GetBytes(pass));
    byte[] result = md5hash.Hash;

    StringBuilder strbuilder = new StringBuilder();
    for (int i = 0; i < result.Length; i++)
    {
        strbuilder.Append(result[i].ToString("x2"));
    }
    md5 = strbuilder.ToString();
}

//salt is ten random character
string pass = getMd5Hash(getMd5Hash("fermentasi")+salt);

现在,我如何在 PHP 中对相同的字符串进行散列处理以获取与我在 c# 中的函数的匹配值? 我一直在寻找,但到目前为止还没有找到解决方案。 感谢您的帮助,对不起我的英语不好:)

【问题讨论】:

  • 请不要使用MD5加密,它不安全。
  • @Duenna 如果它只是用于计算文件或资源的 MD5 哈希值,那么就不会有盐值,因此这是一个合理的假设,用于加密。加上 ...ASCII.GetBytes(pass) 行指向密码。
  • @RonBeyer MD5 是一种散列算法,不用作加密的一部分。但作为更广泛的加密技术的一部分
  • @Anton,您可以发布您使用的实际代码吗?您在问题中的代码将无法编译并且不是有效的 C# 语法。重新生成哈希的方法是从数据库中读取盐值,再次生成哈希,并与存储的值进行比较。
  • @Duenna 我了解散列是什么,请参阅crackstation.net/hashing-security.htm,了解为什么不应该使用 MD5 来支持更好的功能,例如 SHA256。

标签: c# php hash md5


【解决方案1】:

我最近遇到了同样的问题,发现了一个很好的资源here。我们还尝试加密 PHP 表单中的项目,将其存储在 MySQL 中,并希望在 C# 应用程序中解密(并在其中使用)。它使用的 AES 也比 MD5 安全得多。这是我的 PHP 代码片段

function encrypt($text) {

    $iv = "45287112549354892144548565456541";
    $key = "anjueolkdiwpoida";

    $block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv]);


    $crypttext64=base64_encode($crypttext);

    return $crypttext64;

}

function decrypt ($text) {

    $iv = "45287112549354892144548565456541";
    $key = "anjueolkdiwpoida";

    $crypttext64=base64_decode($text);

    $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256 ,  $key,  $crypttext64 ,  MCRYPT_MODE_CBC, $key );

    return $decrypted;

}

所以您需要做的就是在将其存储到数据库之前调用encrypt($text_to_encrypt),然后您可以调用decrypt($encrypted_text) 将其取回。但是,由于我只在 PHP 端,您可能需要参考上一个链接以查看在 C# 端解密它的内容。抱歉只回答了一半。

这只有在您也可以控制 C# 并且您可以选择离开 MD5 时才有效。

【讨论】:

    猜你喜欢
    • 2014-05-19
    • 2019-10-10
    • 1970-01-01
    • 2020-12-08
    • 2018-11-08
    • 2012-05-28
    • 2013-02-01
    • 1970-01-01
    相关资源
    最近更新 更多