PHP hızlı rastgele string işlevi

0 Cevap php

Ben rasgele dizeleri bir-Z0-9 PHP oluşturmak için hızlı bir yol gerekir. Biraz düşünme ve test yapıyorum, bu şimdiye kadar ne var olduğunu:

function randStr($length) {
    $result = null;
    $replace = array('/', '+', '=');
        while(!isset($result[$length-1])) {
        $result.= str_replace($replace, NULL, base64_encode(mcrypt_create_iv($length, MCRYPT_RAND)));
        }
    return substr($result, 0, $length);
}

Fonksiyon yinelemek ve her karakter için rasgele ASCII değerini seçmek işlevlerine göre hızlı çalışıyor gibi görünüyor, ama benim uygulama 'kalite' ile ilgili değilim. Ben kriptografi hakkında çok şey bilmiyorum, bu yüzden işlevi bu tür 'iyi' rastgele değerler oluşturur olup olmadığını sormak istiyorum.

  1. mcrypt_create_iv aslında mcrypt kütüphanesi ile veri şifre çözme / şifrelemek için kullanılan rastgele ikili değerlerin çeşit, geri dönmek gibi görünüyor. Ikili veri bu tür base64_encode etkisi onu base64_encode zaman aslında, entropi azalır mı, nedir?

  2. Nasıl için ikinci parametre mcrypt_create_iv Benim sonuçlarını etkiler? MCRYPT_RAND 'sistem rasgele sayı üreteci' olduğu php.net manuel devletler. Spesifik OS'u ve eğer öyleyse, ne kadar iyi değerler oluşturulur mi?

0 Cevap