Chkpass ile Password Alanını Şifrelemek

Chkpass ile Password ,Veritabanlarında bazı sebeplerden dolayı şifreler tutmamız gerekebiliyor ve bunların dba de dahil olmak üzere kimsenin görmesini istemeyiz.Postgresql de bunun için kullanacağımız birkaç yöntem var ve bunlardan birisi  chkpass adında ki extension’dır.

Chkpass bir extension’dır bunu kullanabilmeniz için contrib paketini kurulumda eklememiz iyi olacaktır.(Postgresql’in 10 ve altı versiyonları  için geçerlidir. Postgresql 10 da contrib paketleri birleşmiştir.)

Contrib paketleri yüklediyseniz aşağıdaki işlemleri yapabilirsiniz. Yüklenmediyseniz  Postgresql kurulumu isimli makalemden yararlanabilirsiniz.

İşlem yapılacak veritabanına bağlandıktan sonra aşağıdaki komutu çalıştırıyoruz.
(Veritabanına bağlanmak da kafanızda soru işaretleri varsa Postgresql Veritabanına Bağlanmak isimli makaleme bakabilirsiniz.)

 

CREATE EXTENSION  chkpass;

Extension’ı yükledikten sonra  chkpass tipinde kolon oluşturuyoruz.

CREATE TABLE personel (username varchar(100), password chkpass);

Deneme amaçlı içine veri yüklüyoruz.

insert into personel values ('ssdd','3333');

insert  yaptıktan sonra yüklediğimiz veriyi kontrol edelim

ve password alanımız encrypted olmuştur.

Her insertte aynı veri basılsa bile farklı encryption değerler oluşturulacaktır.

Pgcrypto yöntemini kullanarak da kolon şifrelenebilir fakat pgcrypto yöntemin de pgp_sym_decrypt yöntemi ile decryption yapılarak şifreleri görebiliriz.Fakat chkpass kolonunda verileri kimse göremez . İçindeki verileri koşul yardımı ile eşleştirerek kayıtın olduğunu görebiliriz.

Örnek üzerinden açıklayacak olursak ;

Yukarıda insert bastığımız değeri görmek istersek aşağıdaki gibi olacaktır.

Loading