2012-06-27 19 views
0

我想使用SHA256算法和盐密钥通过xml发送到服务器来加密我的用户名和密码。我怎样才能做到这一点?Sha256 + salt algorithem在Windows Phone 7中

我用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); 
     } 
+1

SHA256不加密。这是哈希。他们非常不同。 –

+0

请注意,这只会(稍微)保护您免受试图找到您的纯文本密码的人。由于登录过程可以重播,因此它不会保护您免受黑客试图重复使用您的身份验证。您应该使用TLS/SSL来防止重播攻击,并且可以更好地保护服务器上的scrypt,bcrypt或PBKDF2。 –

回答

1

SHA是散列算法而不是加密算法。密码不能从您的结果字符串中提取。你确定你正在采取正确的方法吗?你愿意解释一下情况好一点吗?

+0

啊好的。但没关系。我不想从结果中提取它。在服务器端,他们也将它与使用sha256 +盐后的结果进行比较。 – Arun

+0

@Stallin我现在明白了。你可能想看看Keyed Hash算法,它将用密钥加密你的哈希。这相当于腌制。这里是一个链接:[链接](http://msdn.microsoft.com/en-us/library/system.security.cryptography.keyedhashalgorithm.aspx) –