2016-12-08 15 views
2

Ich bin mit PHP 5.6.23-0 + deb8u1 und in meinem Code möchte ich die Funktion random_bytes benutzen, aber ich bekomme diese Fehlermeldung:Fatal error: Call to undefined function random_bytes()

Fatal error: Call to undefined function random_bytes()

Ich möchte zu wissen, ob ich etwas importieren muss oder nicht in dieser Version von PHP enthalten ist, in diesem Fall, wie kann ich es ersetzen?

+0

* Hinweis: * Obwohl diese Funktion in PHP 7.0 zu PHP hinzugefügt wurde, ist eine »userland-Implementierung für PHP 5.2 bis einschließlich 5.6 verfügbar. Lesen Sie das Handbuch man –

Antwort

6

random_bytes() wurde mit PHP eingeführt 7.

Wie im Handbuch angegeben:

Note: Although this function was added to PHP in PHP 7.0, a » userland implementation is available for PHP 5.2 to 5.6, inclusive.

können Sie das Userland-Implementierung als Backport verwenden: https://github.com/paragonie/random_compat

+0

gibt es nichts in PHP? Ich möchte externe libs vermeiden – AgainMe

+1

Alles, was in PHP verfügbar ist, verhält sich nicht in der gleichen Weise und kann abhängig von der Umgebung fehlschlagen. Ich kann persönlich garantieren, dass diese Bibliothek die beste Lösung ist. Es hat Optionen, es manuell zu installieren und es als lokalen Code zu behandeln - tun Sie das, wenn Sie Abhängigkeiten von Drittanbietern nicht verfolgen möchten. – Narf

-1

random_bytes mit PHP7 eingeführt wurde (reference).

Alternativ können Sie für alte PHP-Versionen mt_rand verwenden, um einen Zufallswert zu generieren, oder rand(), um eine zufällige Ganzzahl zu generieren.

+0

'mt_rand()' ist NICHT zufällig, trotz dessen, was sein Name andeutet, und ist für nichts Sicherheitsempfindliches geeignet. Das ist ziemlich genau der Grund, warum 'random_bytes()' erstellt wurde. – Narf

+0

@Narf op haben über keine Sicherheit in Frage erwähnt. 'mt_rand' generiert Zufallszahlen durch Angabe von Minimal- und Maximalparametern. Wie auch immer, warum stimmst du unten ab? P – Hassaan

+0

Mein vorheriger Kommentar erklärt den Downvote - was darauf hindeutet, dass 'mt_rand()' schlecht ist. Und nein, 'rand()' ist auch nicht zufällig ... Sie fügen mehr und mehr schlechte Ratschläge hinzu. – Narf

Verwandte Themen