Ich muss ein Token für den Einmalgebrauch in PHP generieren. Es gibt zwei Funktionen, die ich dafür verwenden kann, die das gleiche zu tun scheinen: random_bytes und openssl_random_pseudo_bytes. Zum Beispiel mit random_bytes
:Erzeuge ein single use Token in PHP: random_bytes oder openssl_random_pseudo_bytes?
var_dump(bin2hex(random_bytes(12)));
--> string(24) "338f489ec37a2c2b4943905d"
und mit openssl_random_pseudo_bytes
:
var_dump(bin2hex(openssl_random_pseudo_bytes(12)));
--> string(24) "1c7febea20029bd524fba8e7"
openssl_random_pseudo_bytes
ist PHP 5.3 und höher (so nehme ich es schon länger gewesen ist) und random_bytes
ist PHP 7. Ich verwende PHP 7, also kann ich beides verwenden.
Gibt es also einen größeren (oder minderwertigen) Unterschied zwischen den beiden? Wenn nicht, bin ich versucht, mit random_bytes
einfach zu gehen, weil es einen einfacheren Namen hat (= Code, der einfacher zu lesen ist).
Es gibt keine wirklichen Unterschiede. –
Ich rate dir nicht, openssl mehr zu verwenden .. viele Sicherheitsberater berichten mir, dass ich aufhören soll, openSSL zu verwenden –
Soweit ich weiß, wie die Bytes von 'random_bytes' generiert werden, ist plattformabhängig, aber der andere benötigt die openssl Erweiterung. – frz3993