[ Comii @ 02.12.2009. 19:04 ] @
Pozdrav svima!

Imam tabelu lozinke sa sledećim kolonama:

id_lozinke int(5)
Lozinka nvarchar(50)


U kolonu Lozinka unosim md5 hash unete lozinke:

insert into [korisnici].[dbo].[Lozinke] ([Lozinka]) values (HASHBYTES('md5','lozinka'))


nakon unosa podaci u tabeli izgledaju ovako:


id_lozinke 1


lozinka 梺랉㷷딨鑗狙鍵


Kao što možete dobijeni hash lozinke ne liči na md5 hash!

Međutim kada pokrenem sledeći select upit, on vraća ono što je MD5 hash:

select HASHBYTES('md5','lozinka')

Results

0x8AA87050051EFE26091A13DBFDF901C6

Zanima me šta se dešava pri unosu hasha, da li SQL Server vrši dodatno konvertovanje samog zapisa ili je problem sa tipom podataka koji unosim u datu kolonu tabele?
[ mmix @ 02.12.2009. 19:54 ] @
HASHBYTES vraca varbinary a postoji implicitna konverzija iz varbinary u nvarchar po kojoj se binarni ulazni niz tretira kao binarna reprezentacija Unicode stringa.

koristi varbinary (hashsize) polje i nema da te boli glava
[ Comii @ 02.12.2009. 20:13 ] @
Hvala puno! To je to! Promenio sam samo tip polja lozinka u varbinary i sve radi!

Hvala!