Si encuentras alguna parte que no entiendes puedes comentarlo y te responderemos lo mas rápido que podamos.
Solución:
str_random
(Str::random()
) trata de usar openssl_random_pseudo_bytes
que es un generador de números pseudoaleatorios optimizado para criptografía, no para la unicidad. Si openssl_random_pseudo_bytes
no está disponible, vuelve a quickRandom()
:
public static function quickRandom($length = 16)
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
return substr(str_shuffle(str_repeat($pool, 5)), 0, $length);
En mi opinión quickRandom
código no es confiable para la unicidad ni la criptografía.
si, teniendo openssl_random_pseudo_bytes
y usando 32 bytes es casi imposible ver una colisión, pero aún es posible. Si desea asegurarse de que sus cadenas/números sean únicos (99,99 %), es mejor que utilice una función UUID. Esto es lo que uso normalmente:
/**
*
* Generate v4 UUID
*
* Version 4 UUIDs are pseudo-random.
*/
public static function v4()
0x8000,
// 48 bits for "node"
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
);
Genera un UUID versión 4 VÁLIDO RFC 4211 COMPLIANTE.
Mira esto: https://en.wikipedia.org/wiki/Universally_unique_identifier#Collisions
puedes usar esto
use IlluminateSupportStr;
$random = Str::random(40);
Reseñas y puntuaciones de la guía
Si posees algún reparo o capacidad de mejorar nuestro ensayo eres capaz de dejar un comentario y con placer lo ojearemos.