php mit mcrypt_create_iv
Möchte ich eine zufällige int-Werte und strings in PHP und so entschied ich mich für mcrypt_create_iv. Es ist geschrieben in Anleitung, die Sie verwendet, /dev/random und /dev/urandom für die Zufälligkeit aber ich kann nicht finden, eine einfache Anleitung zum generieren von zufälligen Int-und String-mit dieser Funktion. Ich habe versucht einige Codes, aber diese Funktion gibt mir nicht lesbare Zeichen. Also bitte können Sie mir ein einfaches Beispiel von, wie gut ich es verwenden kann?
mcrypt_create_iv
's Ziel ist nicht die generiert zufällige Zeichenfolgen. Sein Zweck ist die Erzeugung einer kryptographischen Initialisierung vector (daher mcrypt und iv).- läuft base64_encode auf die Ausgabe von mcrypt_create_iv ist auch eine option, wenn Sie möchten, einen kleineren Zeichensatz.
- Da Mcrypt wurde nun entfernt beginnend mit PHP 7.2, werden Sie immer nur wollen, um die Verwendung von PHP ' s built-in Funktionen
random_int
undrandom_bytes
, von denen die letztere können Sie Kodieren eine hexadezimale Darstellung, Base64, etc.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, um Zufallszahlen zu generieren, verwenden Sie
mt_rand
:Wenn Sie möchten, eine Zeichenfolge, die Sie übergeben können, die resultierende Ganzzahl durch eine hash-Funktion:
mcrypt_create_iv
wird in der Kryptographie verwendet. Es ist völlig unabhängig Ihrer Anforderung.Wenn Sie suchen, um die zufällige Zeichenfolge in der security-Komponenten (Salze, Passwörter, etc.), Lesen
/dev/urandom
etwa so:...wo
10
ist die Länge, dann konvertieren wie diese:mt_rand
. Sie Lesen möchten/dev/urandom
nur Lesen zu können.mt_rand
.mt_rand
. Es ist nicht "sicher" sowieso, denn Sie haben nur 101 Möglichkeiten. Und durch die Art und Weise,mt_rand
ist nicht "sicher", wenn Sie wollen, zu generieren, die zahlen, die größer als 2^32. Unten, dass es vollkommen in Ordnung ist.mt_rand
. Wenn Ihre Anzahl kleiner ist als 32-bit-lange (z.B.: 4,294,967,296), dann ist es nicht einen Unterschied machen./dev/urandom
kann Ihnen nur Bereiche, die ein Vielfaches von 8 bits. Siehe en.wikipedia.org/wiki/... für details.Erstens, wie willst du dann verwenden Sie die zufällige Zeichenfolgen, was möchtest du Sie einsetzen? Wenn es für die Erzeugung von Salzen der Passwörter Sie können diese Funktion verwenden, um ein besseres zufällige Zeichenfolgen als die, die durch uniqid() oder mt_rand(). Sehen Sicheres Passwort-Hashing und siehe code weiter unten, wie Sie generiert einen zufälligen string mcrypt_create_iv()). Wenn Sie möchten, dass die Zeichenfolgen für Benutzer-Identifikation, warum nicht versuchen, UUID statt.
Die Verwendung von mcrypt_create_iv auf seinen eigenen Willen erzeugen Sie einfach nicht lesbare Zeichen. Zu "konvertieren" diejenigen, die nicht lesbare Zeichen um etwas lesbares verwenden Sie die bin2hex Funktion wie diese:
Die "30" ist die Größe der Initialisierungsvektor, den Sie erhalten möchten. Denken Sie daran, mit MCRYPT_DEV_URANDOM und MCRYPT_DEV_RANDOM auf einem Windows Rechner mit PHP-Versionen, die älter als die 5.3.0 release wird nicht funktionieren. Verwenden MCRYPT_RAND statt für solche Fälle.
rand ( int $min , int $max ) verwenden Sie diese für zufällige zahlen und strings nehmen eine md5-oder sha1-hash der Zufallszahl;