31 Ocak 2011 Pazartesi

MSSQLSERVER veri güvenliği - 3

Microsoft  SQL  Veritabanı sunucusu (MSSQLSERVER) veri kriptolama ve veri dosyası kriptolama
Bölüm 3

ENCRYPTBYPASSPHRASE  fonksiyonu ile Triple-DES  (3DES) kriptolama

evet bu yöntemde bizim tarafımızdan verilen bir değer kriptolama anahtarı
olarak kullanılır. hashbytes yöntemine göre daha sağlamdır. ancak kriptolama
sırasında kullandığımız gizli kelimeyi unutursak verilerimizi bir daha çözemeyiz.



daha önceki örneğimizde olduğu gibi yine bir kullanıcı tablosu kullancağız.
bu sefer şifrelerimizi  encryptbypassphrase ile kriptolayıp
decryptbypassphrase ile de-kripto edeceğiz.


CREATE TABLE [dbo].[tblUser2](
      [id] [int] IDENTITY(1,1) NOT NULL,
      [username] [varchar](20) NOT NULL,
      [isim] [varchar](50) NOT NULL,
      [sifre] [varbinary](512) NOT NULL,
 CONSTRAINT [PK_tblUser2] PRIMARY KEY CLUSTERED
(
      [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]



-- kullanıcılarımızı  şu şekilde kaydedeceğiz...

declare @username varchar(20)
declare @sifre varchar(20)
declare @isim varchar(50)

--kullanıcı kaydet

set @isim='Fatih ÜNAL'
set @username='fatih'
set @sifre='şifre12345'

insert into tblUser2
values(@username ,@isim , ENCRYPTBYPASSPHRASE(N'unutmamamız gereken gizli ifade',@sifre) )




select * from tblUser2


--şifre doğrumu kontrolü

 declare @username varchar(20)
declare @sifre varchar(20)

 set @username='fatih'
 set  @sifre='şifre12345'   -- uygulamadan gelen şifre



if exists(select * from tblUser2
where username=@username and DECRYPTBYPASSPHRASE(N'unutmamamız gereken gizli ifade',sifre)=@sifre  )
begin
  select 'doğru'
end
else
begin
  select 'yanlış'
end

Hiç yorum yok: