0
我有一對夫婦的方法做一些加密,它總是在我比較值增加了\n
。SHA256增加了 n爲進值
這是由於一些新的行字符thingy?
public static class Security
{
public static string CreateHash(this string unHashed)
{
SHA256CryptoServiceProvider x = new SHA256CryptoServiceProvider();
byte[] data = Encoding.UTF8.GetBytes(unHashed);
data = x.ComputeHash(data);
return Encoding.UTF8.GetString(data);
}
public static bool MatchHash(this string hashData, string hashUser)
{
if (hashUser == hashData)
{
return true;
}
else
{
return false;
}
}
}
我輸入值到一個文本框和運行CreateHash()
輸入數值到另一個文本框(所有測試)。然後我從另一個文本框中運行我的比較檢查。
protected void btn_dehash_Click(object sender, EventArgs e)
{
// get value entered and hash it
var matchPass = txt_password.Text.CreateHash();
// populate lbl with true or false
lbl_Name.Text = txt_hashed.Text.MatchHash(matchPass) ? "true" : "false";
}
我從MD5
得到的結果是可以的,因爲這個結果要短得多。我想使用更安全的方法,所以我使用SHA256,這是我從比較中得到的結果。
有誰知道爲什麼發生這種情況?
不要使用''==比較字符串,但是'.equals()' –