2012-06-27 4 views
0

Я хочу зашифровать свой идентификатор пользователя и пароль, используя алгоритм SHA256 и солевой ключ для отправки на сервер через xml. Как я могу это достичь?Sha256 + соль algorithem в windows phone 7

Я сделал пример кода с SHA256 и наклеил отдушку. Как я использую соль ключ в этом?

 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 + salt. – Arun

+0

@Stallin Теперь я понимаю лучше. Возможно, вам захочется взглянуть на алгоритм Keyed Hash Algorithm, который зашифрует ваш хэш ключом. Это эквивалентно засолению. Вот ссылка: [link] (http://msdn.microsoft.com/en-us/library/system.security.cryptography.keyedhashalgorithm.aspx) –