2012-06-27 20 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) –