- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,442
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 8 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,207
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
CSPRNG kısaltması, Kriptografik Olarak Güvenli Sahte Rastgele Sayı Üreticisi anlamına gelir. PHP fonksiyon kütüphanesi, rastgele sayılar üreten birçok fonksiyon içerir. Örneğin:
- mt_rand() − Mersenne Twister Rastgele Sayı Üreticisi aracılığıyla rastgele bir değer üretin.
- mt_srand() − Mersenne Twister Rastgele Sayı Üreticisini Tohumlar
- rand() − Rastgele bir tam sayı üretir.
Örnek
Aşağıdaki kod, mt_rand() fonksiyonunu kullanarak rastgele sayılar üretmenin nasıl mümkün olduğunu göstermektedir.
PHP:
<?php
# Generates random integer between the range
echo "Random integer: " . rand(1,100) . PHP_EOL;
# Generate a random value via the Mersenne Twister Random Number Generator
echo "Random number: " . mt_rand(1,100);
?>
Aşağıdaki çıktıyı üretecektir:
Random integer: 45
Random number: 86
Kod her çalıştırıldığında çıktının değişebileceğini unutmayın. Ancak, bu işlevler tarafından üretilen rastgele sayılar kriptografik olarak güvenli değildir, çünkü sonuçlarını tahmin etmek mümkündür. PHP 7, güvenli rastgele sayılar üreten birkaç işlev tanıttı.
Kriptografik olarak güvenli olan aşağıdaki işlevler yeni eklendi:
- random_bytes() − Kriptografik olarak güvenli yarı rastgele baytlar üretir.
- random_int() − Kriptografik olarak güvenli yarı-rastgele tamsayılar üretir.
random_bytes() Fonksiyonu
random_bytes(), tuzlar, anahtarlar veya başlatma vektörleri oluştururken olduğu gibi kriptografik kullanım için uygun olan kriptografik rastgele baytlardan oluşan keyfi uzunlukta bir dize üretir.string random_bytes ( int $length )
Parametreler
- uzunluk − Bayt cinsinden döndürülmesi gereken rastgele dizenin uzunluğu.
Uygun bir rastgelelik kaynağı bulunamazsa, bir Exception atılır. Geçersiz parametreler verilirse, bir TypeError atılır. Geçersiz uzunlukta bayt verilirse, bir Error atılır.
Örnek
Aşağıdaki örneğe bir göz atın:
PHP:
<?php
$bytes = random_bytes(5);
print(bin2hex($bytes));
?>
Aşağıdaki çıktıyı üretebilir (her seferinde farklı olabilir):
6a85eec950
random_int() Fonksiyonu
random_int() tarafsız sonuçların kritik olduğu durumlarda kullanılmaya uygun kriptografik rastgele tam sayılar üretir.int random_int ( int $min , int $max )
Parametreler
- min − Döndürülecek en düşük değer, PHP_INT_MIN veya daha yüksek olmalıdır.
- max − Döndürülecek en yüksek değer, PHP_INT_MAX'tan küçük veya ona eşit olmalıdır.
Uygun bir rastgelelik kaynağı bulunamazsa, bir Exception atılır. Geçersiz parametreler verilirse, bir TypeError atılır. Max, min'den küçükse, bir Error atılır.
Örnek
Aşağıdaki örneğe bir göz atın:
PHP:
<?php
print(random_int(100, 999));
print("\n");
print(random_int(-1000, 0));
?>
Aşağıdaki çıktıyı üretebilir (her seferinde farklıdır):
495
-563


