HashBytes ile Veri Katmanında Hash İşlemi

14 Ekim Çarşamba, 2009 | Sql /*Yorumlar (3)*/

Bildiğiniz gibi verileri Hash'lemek için bir çok yöntem var. Bunlara alternatif olarak Ms Sql Server içindeki HashBytes sistem fonksiyonu ile de yapmak mümkün.

Fonksiyon iki adet parametre alır. İlk parametre Hash algoritmasının adı (MD2, MD4, MD5, SHA, SHA1) diğeri ise Hash'lenecek veri(varchar, nvarchar, varbinary). Fonksiyondan geriye ise varbinary tipinde bir değer döner (8000 bytes).

Örnek olarak, web uygulaması için basit bir login işlemi yapalım.

Örnek tablo:

create table SiteUsers
(
 userID int primary key identity(1,1),
 userName nvarchar(50),
 [passWord] varbinary(20)--SHA1 160bits > 20 bytes
)
go

Kayıt eklemek için bir procedure.

create proc InsertUser
 @userName nvarchar(50),
 @passWord nvarchar(50)
as
 insert SiteUsers
 values
 (@userName,HashBytes('SHA1', @passWord));
 select SCOPE_IDENTITY();
go

Son olarakta kullanıcı kontrolü yapan bir procedure.

create proc ValidateUser
 @userName nvarchar(50),
 @passWord nvarchar(50)
as
 if exists(select userID from SiteUsers 
     where userName = @userName 
     and 
     [passWord] = HashBytes('SHA1', @passWord))
  select 'Mevcut.'
 else
  select 'Mevcut değil.'
go

Script

Yorumlar

altug

hocam paylasiminiz icin tesekkurler...
yalnız buna ado tarafindan parametre ne şekilde verebiliriz?
ÖRN:
.............. ................
............. .................
"@UserName", txtad.Text);"@Password)", txtparola.Text);iyi calismalar...
com.Parameters.AddWithValue(
com.Parameters.AddWithValue(

5 Şubat Cuma, 2010

Altuğ

hocam paylasimiz icin tesekkurler...
Bir önceki sorum karisik oldu.Diger okurlarin da anlayabilmesi icin baştan yaziyorum:)
Buna Ado tarafından parametre ne sekilde verebiliriz
............................
com.Parameters.AddWithValue("@UserName",txtname.Text);
com.Parameters.AddWithValue("@Password",txtpassword.Text);
iyi calismalar...

5 Şubat Cuma, 2010

Emre AYRILMAZ

Selam Altuğ,


doğru şekilde yazmışsın zaten. Parametre değeri olarak string tipinde bir değer vermen yeterli olacaktır.

6 Şubat Cumartesi, 2010

Yorum Yaz

Ad

Email (sahte adresli yorumlar silinir.)

Yorum