PHP 7 - CSPRNG
PHP 7'de, kriptografik olarak güvenli tamsayılar ve dizgeleri çapraz platform yoluyla üretmek için aşağıdaki iki yeni işlev tanıtılmıştır.
random_bytes() - Kriptografik olarak güvenli sözde rastgele baytlar üretir.
random_int() - Kriptografik olarak güvenli sözde rastgele tamsayılar üretir.
random_bytes ()
random_bytes (), tuzlar, anahtarlar veya başlatma vektörleri oluştururken olduğu gibi, kriptografik kullanım için uygun olan rastgele uzunlukta bir kriptografik rastgele bayt dizisi üretir.
Sözdizimi
string random_bytes ( int $length )
Parametreler
length - Bayt cinsinden döndürülmesi gereken rastgele dizenin uzunluğu.
Dönen Değerler
İstenen sayıda kriptografik olarak güvenli rasgele bayt içeren bir dize döndürür.
Hatalar / İstisnalar
Uygun bir rastgelelik kaynağı bulunamazsa, bir İstisna atılır.
Geçersiz parametreler verilirse, bir TypeError fırlatılacak.
Geçersiz bir bayt uzunluğu verilirse, bir Hata atılır.
Misal
<?php
$bytes = random_bytes(5);
print(bin2hex($bytes));
?>
Aşağıdaki tarayıcı çıktısını üretir -
54cc305593
random_int ()
random_int() tarafsız sonuçların kritik olduğu durumlarda kullanıma uygun kriptografik rastgele tamsayılar üretir.
Sözdizimi
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.
max - Döndürülecek en yüksek değer; değerinden küçük veya ona eşit olmalıdır PHP_INT_MAX.
Dönen Değerler
Minimumdan maksimuma kadar (dahil), şifreli olarak güvenli bir rastgele tamsayı döndürür.
Hatalar / İstisnalar
Uygun bir rastgelelik kaynağı bulunamazsa, Exception fırlatılacak.
Geçersiz parametreler verilirse, bir TypeError fırlatılacak.
Max min'den küçükse, bir Error fırlatılacak.
Misal
<?php
print(random_int(100, 999));
print("");
print(random_int(-1000, 0));
?>
Aşağıdaki tarayıcı çıktısını üretir -
614
-882