Nuevo en la versión 1.2: Se añadió el generador de números aleatorios seguros.
En casi todas las aplicaciones, necesitas generar números aleatorios que un posible atacante no pueda adivinar. Desafortunadamente, PHP no proporciona la capacidad para hacerlo de forma consistente en todas las plataformas.
Este paquete viene con varias implementaciones de proveedores de semillas, y se elige el mejor proveedor posible, dependiendo de tu configuración de PHP.
Puedes activar el servicio «security.secure_random» con la siguiente configuración:
jms_security_extra:
util:
secure_random: ~
<jms-security-extra>
<util>
<secure-random />
</util>
</jms-security-extra>
También asegúrate de ejecutar php app/console doctrine:scheme:update, o crea una migración equivalente para importar la tabla seed.
El generador se activa con el id de servicio security.secure_random.
<?php
$generator = $this->container->get('security.secure_random');
$bytes = $generator->nextBytes(16); // número aleatorio de 128-bit
$bytes en el ejemplo anterior contiene datos binarios. Luego puedes convertir estos datos a un formato que puedas imprimir utilizando una de estas funciones:
<?php
$base64Encoded = base64_encode($bytes); // número en base 64
$hexEncoded = bin2hex($bytes); // número en base 16
$decEncoded = bindec($bytes); // número en base 10