Saltar al contenido

Laravel str_random() o función personalizada?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *