Potrzebuję wygenerować token jednorazowy w PHP. Dostępne są dwie funkcje, które można użyć do tego, które wydają się robić to samo: random_bytes i openssl_random_pseudo_bytes. Na przykład za pomocą random_bytes
:Generowanie tokena jednorazowego użycia w PHP: random_bytes lub openssl_random_pseudo_bytes?
var_dump(bin2hex(random_bytes(12)));
--> string(24) "338f489ec37a2c2b4943905d"
i korzystania openssl_random_pseudo_bytes
:
var_dump(bin2hex(openssl_random_pseudo_bytes(12)));
--> string(24) "1c7febea20029bd524fba8e7"
openssl_random_pseudo_bytes
jest PHP 5.3 i do góry (tak zakładam, że to już dłużej), a random_bytes
jest PHP 7. Używam PHP 7, więc mogę użyć albo.
Czy jest jakaś duża (lub mniej ważna w tej kwestii) różnica między tymi dwoma? Jeśli nie, to kusi mnie, aby przejść z random_bytes
po prostu dlatego, że ma łatwiejszą nazwę (= kod, który jest łatwiejszy do odczytania).
Nie istnieją żadne realne różnice. –
Nie radzę ci już używać openssl .. wielu doradców bezpieczeństwa zgłasza mi, żebym przestał używać openSSL –
O ile mi wiadomo, sposób generowania bajtów przez 'random_bytes' zależy od platformy, ale drugi będzie wymagał rozszerzenia openssl. – frz3993