Generando OTP (Contraseña de un solo uso) en PHP

Ahora, en estos días, OTP (contraseña de un solo uso) es obligatoria en casi todos y cada uno de los servicios. Un desarrollador puede generar OTP de muchas maneras, pero el desafío no es ser predictivo, ya que cualquiera puede predecir la OTP y explotar el servicio.

Algunos de los formatos populares de OTP son:

  • OTP numérico de 4 o 6 dígitos.
  • 4 o 6 alfabéticos (minúsculas/mayúsculas) OTP.
  • OTP alfanumérico de 4 o 6 dígitos.

Ejemplos de OTP numérica de n dígitos:

Input : n = 4
Output : 8723

Input : n = 8
Output : 23914072

Nota: La salida del programa será diferente en cada ejecución.

Una de las mejores formas de generar OTP es usar una función aleatoria. Pero usar la función aleatoria directamente puede ser peligroso. Entonces, aquí hay un método que usa una función aleatoria y algún algoritmo para generar la OTP numérica de n dígitos.

Programa:

<?php
  
// Function to generate OTP
function generateNumericOTP($n) {
      
    // Take a generator string which consist of
    // all numeric digits
    $generator = "1357902468";
  
    // Iterate for n-times and pick a single character
    // from generator and append it to $result
      
    // Login for generating a random character from generator
    //     ---generate a random number
    //     ---take modulus of same with length of generator (say i)
    //     ---append the character at place (i) from generator to result
  
    $result = "";
  
    for ($i = 1; $i <= $n; $i++) {
        $result .= substr($generator, (rand()%(strlen($generator))), 1);
    }
  
    // Return result
    return $result;
}
  
// Main program
$n = 6;
print_r(generateNumericOTP($n));
  
?>
Producción:

561862

Publicación traducida automáticamente

Artículo escrito por Shivam.Pradhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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