MS-SQL Şifreleme İşlemleri
- 390
- (1)
- (5)
- 27 Haz 2017
Veri şifrelemek için encryptbypassphrase
fonksiyonunu kullanabilirsiniz. Bu fonksiyonun ilk parametresi şifreleme anahtarı, ikinci parametresi ise şifrelenecek metin olacaktır.
select encryptbypassphrase('awr127q23s', N'Şifrelenecek Metin')
Sorguda çalıştırılacak fonksiyonun sonucu olarak hexadecimal(16 tabanlı) bir binary sonuç göreceksiniz. Metnin şifrelenmiş ve byte bilgisine dönüştürülmüş halini tablolar üzerinde varbinary
türünde alanlar içinde tutabilirsiniz.
Aşağıdaki gibi bir tablo oluşturarak bu tabloya şifrelenmiş veriler girebilirsiniz.
create table tabloKullanicilar
(KullaniciAdi nvarchar(50), Parola varbinary(max))
tabloKullanicilar
üzerindeki Parola isimli alana şifrelenmiş parola bilgileri kaydedilecektir. Aşağıdaki insert
sorgularını uygulayarak anahtar-21 değeri ile şifrelenen her bir parola byte dizisi olarak kaydedilir.
insert tabloKullanicilar (KullaniciAdi, Parola)
values (N'admin', encryptbypassphrase('anahtar-21', N'sifre!123test'))
insert tabloKullanicilar (KullaniciAdi, Parola)
values (N'moderator', encryptbypassphrase('anahtar-21', N'yenisifre12!'))
Kayıtları doğrudan görmek istediğiniz zaman:
select * from tabloKullanicilar
Sütuna sığmayan 16 tabanlı bir byte dizisi göreceksiniz.
Şifrelenmiş bilgiyi geri çözmek içinse şifrelendiği anahtar ile decryptbypassphrase
fonksiyonu kullanılır. Bu fonksiyonun da encryptbypassphrase
gibi ilk parametresi anahtar, ikinci parametresi ise şifreli byte dizisi (varbinary
) olacaktır. Ancak çözülen şifre de varbinary
cinsinden olacağı için şifrelenmiş veri hangi türde ise convert
fonksiyonu ile ona dönüştürülmelidir.
select KullaniciAdi, convert(nvarchar, decryptbypassphrase('anahtar-21', Parola))
from tabloKullanicilar
Dikkat etmeniz gereken husus eğer başlangıçta metni nvarchar
olarak yani N'metin'
şeklinde belirlediyseniz geri dönüştürürken de nvarchar
türüne dönüştürmeniz gerektiğidir. Eğer varchar
olarak şifrelediyseniz varchar
türüne döndürün.