Chciałbym do connection stringa przekazac zahashowane hasło, w celu logowania do SQLServera.
Na serverze zalozylem login i uzytkownika z zahashowanym hasłem
Create login test with password = 0x5FA285E1BEBE0A6623E33AFC04A1FBD5 HASHED
Create user test1 for login test
Hash wygenerowałem w nastepujacy sposób
DECLARE @HashThis nvarchar(4000);
SELECT @HashThis = CONVERT(nvarchar(4000),'123');
SELECT HashBytes('MD5', @HashThis);
GO
Fragment kodu, odpowiedzialny za generowanie parametrów do connection stringa wyglada jak ponizej (działa na "normalnych hasłach" bez zarzutu)
private void bZaloguj_Click(object sender, EventArgs e)
{
danePolaczenia.nazwaSerwera = ZmienneGlobalne.nazwaSerwera;
danePolaczenia.bazaDanych = ZmienneGlobalne.bazaDanych;
danePolaczenia.uzytkownik = tbUzytkownik.Text;
danePolaczenia.haslo = tbHaslo.Text;
}
Próbowałem to przeedytowac na rózne sposoby
MD5 md5 = MD5.Create();
string tekst;
private void bZaloguj_Click(object sender, EventArgs e)
{
danePolaczenia.nazwaSerwera = ZmienneGlobalne.nazwaSerwera;
danePolaczenia.bazaDanych = ZmienneGlobalne.bazaDanych;
danePolaczenia.uzytkownik = tbUzytkownik.Text;
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes("123");
byte[] hashBytes = md5.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
tekst = Convert.ToString(sb.Append(hashBytes[i].ToString("x2")));
}
danePolaczenia.haslo = tekst;
}
private void bZaloguj_Click(object sender, EventArgs e)
{
danePolaczenia.nazwaSerwera = ZmienneGlobalne.nazwaSerwera;
danePolaczenia.bazaDanych = ZmienneGlobalne.bazaDanych;
danePolaczenia.uzytkownik = tbUzytkownik.Text;
danePolaczenia.haslo = "0x5FA285E1BEBE0A6623E33AFC04A1FBD5";
}
private void bZaloguj_Click(object sender, EventArgs e)
{
danePolaczenia.nazwaSerwera = ZmienneGlobalne.nazwaSerwera;
danePolaczenia.bazaDanych = ZmienneGlobalne.bazaDanych;
danePolaczenia.uzytkownik = tbUzytkownik.Text;
danePolaczenia.haslo = "202cb962ac59075b964b07152d234b70";
// wygenerowane za pomoca http://www.miraclesalad.com/webtools/md5.php
}
Za kazdym razem dostaje informacje "Login failed for user 'test'."
Eny ajdijas, co robie zle?