0

したがって、同じ手法を使用して同じテキストの MD5 合計を比較する際に問題があります。.NET MD5 ツールと Unix の md5sum.exe プログラムを使用しています。

ここに私の.NETコードがあります:

public void Test()
{
    string str1 = "testline1";
    string str2 = "testline2";
    StringBuilder sb = new StringBuilder();

    sb.Append(str1);
    sb.Append(Constants.vbLf);
    sb.Append(str2);

    string hash = GetMD5Hash(sb.ToString());

    //hash = 4fb435ffb8e071151c3411dd3a922460
}

public string GetMD5Hash(string text)
{
    byte[] hash;
    using (MD5 md5 = MD5.Create())
    {
        hash = md5.ComputeHash(Encoding.UTF8.GetBytes(text));
    }

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

    return sb.ToString();
}

md5sum.exe がある UNIX ベースの OS を実行しているサーバーがあります。私のサーバーには、次のような単純なファイルがあります。

testline1
testline2

ファイルの名前が testFile.txt だとしましょう

md5sum の複数のバリエーションを実行して、これらの値を無駄にできないかどうかを確認してみました。

$md5sum testFile.txt                     //22f877bcf8985a0f038a5b70086b955d
$echo -n $(cat testFile.txt) | md5sum    //1e192bb9877cc2f20e7010d499c0a306
$echo -E $(cat testFile.txt) | md5sum    //83b6873b79ca36952eb58ea05083c02e

$unix2dos testFile.txt  //converting file to dos just in case line endings are issue
$md5sum testFile.txt                     //d302436fa25c7faaab75ceca1f1df16d
$echo -n $(cat testFile.txt) | md5sum    //94f0c8f7e9820cb6eda9e911ee21b2a8
$echo -E $(cat testFile.txt) | md5sum    //f39452a70621ed225057073e86f17858

私はこれに何時間も取り組んできましたが、これらの MD5 を一致させることができないようです。何か案は?

4

2 に答える 2