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.