【发布时间】:2012-06-28 21:00:27
【问题描述】:
我想使用 SHA256 算法和盐密钥加密我的用户名和密码,以便通过 xml 发送到服务器。我怎样才能做到这一点?
我用 SHA256 做了一个示例代码并粘贴了 bleow。我如何在这个中使用盐键?
void myBtn_Click(object sender, RoutedEventArgs e)
{
var sha = new SHA256Managed();
var bytes = System.Text.Encoding.UTF8.GetBytes(testPass.Text);
byte[] resultHash = sha.ComputeHash(bytes);
string sha256 = ConvertToString(resultHash);
}
public static string ConvertToString(byte[] buff)
{
string sbinary = "";
for (int i = 0; i < buff.Length; i++)
{
//hex-formatted
sbinary += buff[i].ToString("X2");
}
return (sbinary);
}
【问题讨论】:
-
SHA256 不是加密。这是散列。它们非常不同。
-
请注意,这只会(略微)保护您免受试图找到您的纯文本密码的人的侵害。由于可以重播登录过程,因此它不会保护您免受黑客试图重复使用您的身份验证。您应该使用 TLS/SSL 来防止重放攻击,并在服务器上使用 scrypt、bcrypt 或 PBKDF2 以获得更好的保护。
标签: windows-phone-7 encryption salt sha sha256