PHP ile rasgele şifre üretmek

PHP ile rasgele şifre üretmek için aşağıdaki scripti kullanabilirsiniz. Fonksiyon sizin vereceğiniz uzunluk değerine göre bir şifre üretiyor. Algoritma şu şekilde çalışıyor;ilk önce rand() fonksiyonu ile şifreyi oluşturacak karakterlerin ASCII değerleri elde ediliyor, chr() fonksiyonu ile de karakter karşılıkları elde ediliyor ve switch() fonksiyonunda da hangi case’in çalışacağı yine rasgele belirlenerek her bir karakter için üç farklı tipde değer elde edilmesi sağlanıyor.
[code lang=”php”]
function rasgeleSifre($uzunluk)
{
$sifre = ”; //başlangıç değeri boş olarak ayarlanıyor.
for($i=0;$i<$uzunluk;$i++) { switch(rand(1,3)) { case 1: $sifre.=chr(rand(48,57)); break; //0-9 case 2: $sifre.=chr(rand(65,90)); break; //A-Z case 3: $sifre.=chr(rand(97,122)); break; //a-z } } return $sifre; } $sifre=rasgeleSifre(200); echo $sifre; ?>
[/code]

3 responses to “PHP ile rasgele şifre üretmek”

  1. aynı şifreyi verme olasılığı yok mu bunda benim bildiğim rnd() fonksyonu çekirdek olarak sistem saatini referans alıyor.Ama başka türlüyse bilemem tabi

  2. Elbette üretilen rasgele sayının aynı gelme olasılığı vardır. Üretilen sayının çekirdeğindeki referans zaman aralığının değiştirilmesi de mümkündür. bu işlem için genellikle srand() fonsiyonu rand() fonksiyonundan önce şu şekilde kullanılır.
    [code lang=”php”]
    srand((double)microtime()*1000000);
    [/code]
    Ama dahi iyi sonuç veren php fonksiyonları da mt_rand() ve mt_srand() fonksiyonlarıdır. PHP varsayılan olarak rand() fonksiyonunda libc kütüphanesini kullanır. mt_rand() ve mt_srand() fonksiyonları varsayılan olarak kullanılan rand() fonksiyonundan ortalama 4 kez daha hızlı rasgele sayı üretmektedir.

Leave a Reply

Your email address will not be published. Required fields are marked *