En este artículo, veremos cómo generar una contraseña aleatoria usando la string dada. Le hemos dado una string y la tarea es generar una contraseña aleatoria a partir de ella.
Ejemplo:
Input: abgADKL123 Output: abgADKL123 Input: geeksforgeeks Output: egksegsfroeke
Para lograr esto, utilizamos los siguientes enfoques.
Enfoque 1: En este enfoque, usamos la función PHP rand() y creamos una variable temporal, y usando for loop creamos caracteres aleatorios a partir de la string dada y concatenamos ese carácter a la variable temporal. A continuación se muestra la implementación de este enfoque.
código PHP:
PHP
<?php // Function to generate password from // given string function get_password($str, $len = 0) { // Variable $pass to store password $pass = ""; // Variable $str_length to store // length of the given string $str_length = strlen($str); // Check if the $len is not provided // or $len is greater than $str_length // then assign $str_length to $len if($len == 0 || $len > $str_length){ $len = $str_length; } // Iterate $len times so that the // resulting string's length is // equal to $len for($i = 0; $i < $len; $i++){ // Concatenate random character // from $str with $pass $pass .= $str[rand(0, $str_length)]; } return $pass; } // Print password of length 5 from // the given string $str = "GeeksForGeeks"; echo get_password($str, 5) . "\n<br/>"; // Print password of length 15 from // the given string $str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; echo get_password($str, 15) ."\n<br/>"; // Print password if the length // is not given echo get_password($str) . "\n<br/>"; ?>
Producción:
skGse iWwf9jWZZE9ZL7O GhRQ8zK4wpX93srUj1LhjsBEeBwBwo4Bh43RyZeSFZbwjVoonkKBgfXiBrEpY
Enfoque 2: en este enfoque, usamos la función PHP str_shuffle() , y luego usamos la función substr() para extraer la parte de la string dada.
código PHP:
PHP
<?php // Function to generate password from // given string function get_password($str, $len = 0) { // Variable $pass to store password $pass = ""; // Variable $str_length to store // length of the given string $str_length = strlen($str); // Check if the $len is not provided // or $len is greater than $str_length // then assign $str_length into $len if($len == 0 || $len > $str_length){ $len = $str_length; } // Shuffle the string $pass = str_shuffle($str); // Extract the part of string $pass = substr($pass, 0, $len); return $pass; } // Print password of length 5 from // the given string $str = "GeeksForGeeks"; echo get_password($str) . "\n<br/>"; // Print password of length 15 from // the given string $str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; echo get_password($str, 15) ."\n<br/>"; // Print password if the length is // not given echo get_password($str) . "\n<br/>"; ?>
Producción:
oeFssGkeGrkee rxIhAjCi47wgW1z r4LZQqlOFGU36i7gEAtzwsnduNXhHKD92ajpxBJc1MRvVmbyeokPIWfCTSY85