0
目前我有3種不同的方法用於md5,sha1和sha512。一些小部件是不同的,比如使用聲明。是否有可能爲所有這些創建一個通用方法?我是一箇中級人員,有些話題對我來說很新。 下面的代碼(簡體)。忽略「ConvertHashToString」方法。 謝謝!任何算法的C#密碼通用方法
public string CheckMd5(string filename)
{
using (var stream = File.OpenRead(filename))
{
using (var md5 = MD5.Create())
{
return ConvertHashToString(md5.ComputeHash(stream));
}
}
}
public string CheckSha512(string filename)
{
using (var stream = File.OpenRead(filename))
{
using (var sha = SHA512.Create())
{
return ConvertHashToString(sha.ComputeHash(stream));
}
}
}
謝謝!這種方式的名字是什麼?匿名方法? – schui
第一個只是一些新的C#6語法,稱爲[表達式體成員](https://msdn.microsoft.com/en-us/magazine/dn802602.aspx)。 – vcsjones
第一種實現通常是不好的做法。對象應該在創建它們的地方放置。在示例中,我將一個完全有效的'MD5'對象傳遞給'CheckHash',但在調用'CheckHash'後,我的'MD5'對象因某種原因被丟棄。如果我打算再次使用它,該怎麼辦?沒有任何關於'CheckHash'的信息會指出這種行爲。 – dman2306