lostyazilim
tr.link

PHP'nin Önerdiği Şifremele (password_hash Fonksyonu)

3 Mesajlar 2.540 Okunma
lstbozum
tr.link

CanerErgez CanerErgez http://ergezcaner.com Kullanıcı
  • Üyelik 17.10.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Öğrenci
  • Konum Bilecik
  • Ad Soyad C** E**
  • Mesajlar 158
  • Beğeniler 6 / 34
  • Ticaret 0, (%0)
Merhaba Arkadaşlar , Güvenli Şifreler Oluşturmak İçin Bu Konuyu Açma Gereği Duydum . PHP , Kendi Sitesinde 5.5 ve Üstü PHP Versiyonlarında Bu Fonksiyonu Kullanmayı Tavsiye Ediyor .


Merhaba Arkadaşlar Önceki Dersimizde İç İçe Şifreme Yapmanızı Önermiştik . Lakin , Bu Şifremenin Zayıf Yanı , Kırılabilecek Olmasıdır . Bu Kez Bir Önceki Yazımızdan Daha Güvenli Bir Şifreleme Yöntemi Paylaşıyoruz . Bunun İçin Kullanacağımız Fonksiyon password_hash() Fonksiyonu . Bu Fonksiyonu Daha Güvenli Yapan Özelliği Otomatik Olarak PHP 5 API Key Kullanması , Fonksiyon Default Olarak Size Özel Tanımlanmış PHP 5 API Key’i Kullanarak Şifreleme Yapıyor ve Bu Sayede Diğer Bilgisayarlarda Decode Fonksiyonu Çalışmıyor .



password_hash() fonksiyonunu 2 farklı şekilde kullanabiliriz .



1 – ) DEFAULT Modu : Bu Şifreleme Verdiğiniz Şifreyi Kendiliğinden Otomatik Olarak Şifreler . Bakalım Benim Bilgsayarımda Sonuç Ne Dönecek .

echo password_hash("kodogren", PASSWORD_DEFAULT);
?>


Evet Arkadaşlar Yukarıdada Gördüğünüz Gibi , kodogren Olarak Girdiğimiz Şifreyi Bize Ekran Çıktısı Olarak ;



$2y$10$E17FQuu5izFuTVqpfBq6Ou99sVH2h2WR0WLZ6ErusHw7qUc7ygGm2


Şeklinde Verdi , Sizde Deneyin Bakalım Ne Çıkacak :



2 – ) BCRYPT Modu : Bu Modda Bir Dizi Ataız ve Değer Olarak Bir Sayı Veririz , Örneğin Bu Sayı 13 Olsun , Bu Mod Sizin Verdiğiniz 13 Sayısını Baz Alarak Bir Şifreleme Yapar . Burada Kullabileceğiniz Değerler COST ve SALT’tır . COST Değeri Olarak 4-15 Değerleri Arasını Optimum Olarak Görmekteyim .



Bu Mod Sayesinde Aynı Metini 11 Farklı Şekilde Şifreleyebilirsiniz . API Keyinide Hesaba Katarsak 1 Şifre md5 , sha1 veya Benzer Fonksiyonların Tersinde 1 Sonuç Değil Binlerce Farklı Sonuç Verebilir . Default Modunda Bu Değer 10 Olarak Kabul Edilir ve Buna Göre Şifreleme Yapılır .



Şimdi Birde BCRYPT Moduna Örnek Verelim. ;



/**
*Önerilen Değer 12'dir .
* BCRYPT Sonuçları Daima 60 Karakterlik Stringlerdir .
*/
$ayar = [
'cost' => 13,
];
echo password_hash("kodogren", PASSWORD_BCRYPT, $ayar)."\n";
?>


Bu Kod için Bize Dönen Değer ;



$2y$13$wgg1gDkiKD2pba7zrNrnxubDPSLZ7mcoAADzDSi6DdDRjAQLT.FpK


Oldu . Sizde Deneyin Bakalım nelerle Karşılaşacaksınız :)



php security



Önemli Notlar :

* – Bu Fonksiyon Size Pek Çok Açıcan hash() Fonksiyonunu Anımsatabilir . Fakat Aralarında Çokta Bir benzerlik Bulunmamaktadır ve hash() Fonksiyonu password_hash() Fonksiyonundan Çok Daha Güvensizdir .



* – PHP Geliştiricileri En Güvenli Şifreleme İçin password_hash() Fonksiyonunu Öneriyor .



* – password_hash , cost ve salt Birlikte Kullanımı ;

/**
* Not : Salt Aşağıdaki Fonksiyon ıle Random olarak Üretilmektedir
* Asla Statik (Değişmez) veya Sabit Salt Kullanmayın .
*/
$options = [
'cost' => 11,
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
];
echo password_hash("kodogren", PASSWORD_BCRYPT, $options)."\n";
?>


* – password_verify() Fonksiyonu Ile Şifrenizin Doğru olup Olmadığını Kontrol Edebilirsiniz . Hemen Örneği Gösterelim ;



// See the password_hash() example to see where this came from.
$hash = '$2y$13$wgg1gDkiKD2pba7zrNrnxubDPSLZ7mcoAADzDSi6DdDRjAQLT.FpK';

if (password_verify('kodogren', $hash)) {
echo 'Şifre Doğru';
} else {
echo 'Şifre Yanlış';
}
?>


Tabiiki Bu Koduda Sizin İçin Denedik ve Şifre Doğru Yanıtını Aldık .



* – Password_hash’i Anlatan Ilk Site KodOgren.Org’dur :)



Şimdilik Belirteceklerimiz Bu Kadar . Bzi Takip Ettiğiniz İçin Teşekkürlerimizi Borç Biliriz :)



İyi Çalışmalar Dileriz .


Kaynak : Tıkla !
 

 

wmaraci
reklam

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)
Teşekkürler bi sorum olacak
Password_hash kullanımı sadece
$gelen-veri= "pop öğren ";
$şifrele= password_hash(gelen-veri,PASSWORD_DEFAULT);
Bumudur diğer modun farkı nedir BCRYPT bu nasıl kullanılır az daha detaylı anlatılırsa çok iyi olur tesekkurler
 

 

CanerErgez CanerErgez http://ergezcaner.com Kullanıcı
  • Üyelik 17.10.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Öğrenci
  • Konum Bilecik
  • Ad Soyad C** E**
  • Mesajlar 158
  • Beğeniler 6 / 34
  • Ticaret 0, (%0)
Daha Ayrıntılı Konu Anlatımını En Kısa Sürede Site Üzerinde Paylaşırım veya Kayıt Olarak Soru-Cevap Kısmına Yazarsanız Daha Hazlı Cevap Verebilirim . :)


$gelen_veri= "pop öğren";
$şifrele= password_hash($gelen_veri,PASSWORD_DEFAULT);


Bu Şekilde Kullanımı Dahi Yeterlidir . Zaten Yeterince Güvenli Bir Fonksiyon .
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al