Foros del Web » Programando para Internet » PHP »

Contraseñas aleatorias

Estas en el tema de Contraseñas aleatorias en el foro de PHP en Foros del Web. Hola, solo queria decir que tengo un problema con tu script: <?php function f_genera_psw($num=8){ // By Kernellover $voc = array ("a","e","i","o","u"); $con = array ("b","c","d","f","g","h","j","k","l","m","n","p"," ...
  #1 (permalink)  
Antiguo 24/12/2003, 07:49
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 3 meses
Puntos: 2
Contraseñas aleatorias

Hola, solo queria decir que tengo un problema con tu script:

<?php
function f_genera_psw($num=8){ // By Kernellover
$voc = array ("a","e","i","o","u");
$con = array ("b","c","d","f","g","h","j","k","l","m","n","p"," q","r","s","t","w","x","y","z");
$psw = ""; // cadena que contendrá el password.
$vc = mt_rand(0,1); // definde si empieza por vocal o consonante.
for ($n=0; $n<$num; $n++){
if ($vc==1){
$vc=0;
$psw .= $con[mt_rand(0,count($con)-1)];
}
$psw .= $voc[mt_rand(0,count($voc)-1)];
$psw .= $con[mt_rand(0,count($con)-1)];
}
$psw = ereg_replace ("q","qu",$psw);
$psw = ereg_replace ("quu","que",$psw);
$psw = ereg_replace ("yi","ya",$psw);
$psw = ereg_replace ("iy","ay",$psw);
$psw = substr($psw,0,$num);
return $psw;
}
echo f_genera_psw();

Se trata que siempre al habrir el explorador me muestra la misma contraseña: zidazoci

ya si le doy a atulizar sale diferente, pero cuando es la primera vez que se ejecuta sale esa contraseña, ¿porque podra ser?

un saludo

Última edición por escan_0; 24/12/2003 a las 09:12
  #2 (permalink)  
Antiguo 24/12/2003, 08:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
(Ese no es mi "script", creo que te confundistes. Por lo menos con el que está en las FAQ's para generar passwords aleatorios

Cita:
function f_genera_psw($num=8){ // By Kernellover
)

Podrías usar rand() simplemente en lugar de mt_rand() (sobre todo si usas PHP 4.2.0 en adelante).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 24/12/2003, 09:21
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 3 meses
Puntos: 2
Perdon, es verdad tienes razon me confundí, perdona Kernellover

Muchas gracias, ahora si funciona perfectamente.
  #4 (permalink)  
Antiguo 24/12/2003, 11:37
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años
Puntos: 2
mira esto a ver si te gusta mas

Código PHP:
<?php
/********************************************************************************/
/*                  FUNCION PARA GENERAR PASSWORD ALEATORIO                     */
/********************************************************************************/
function FUNC_passGeneraAuto($longCodeLetras){

    for (
$iSuma=1$iSuma<=$longCodeLetras$iSuma++)    {

        
$letraCode chr(rand(97,122));
          
$generaCodeLetras .= strtoupper($letraCode);

        
$numCode rand(0,9);
        
$generaCodeNum .= $numCode;

    }

        
$montaCode $generaCodeLetras.$generaCodeNum;
        
$valorGeneraImg $montaCode;

    return 
$montaCode;
}
//////////////////////////////////////////////////////////////////////////////////

echo FUNC_passGeneraAuto(3);

?>

salu2
__________________
3w.valenciadjs.com
3w.laislatv.com
  #5 (permalink)  
Antiguo 17/05/2005, 19:07
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Pero ese scrípt para generar passwords aleatorios y que queden en la tabla,suponete,usuarios...cómo se hace??? Gracias...
  #6 (permalink)  
Antiguo 17/05/2005, 19:11
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Tienes una función, solo resive (según lo veo en una revisada rápida) una variable que indicará el número de carácteres que quieres que te devuelva tu password. Simplemente llámala, pasale ese valor y asignale el resultado a una variable:
Código PHP:
$passwordFUNC_passGeneraAuto(10);
echo 
$password
Consulta en la documentación oficial sobre funciones...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 17/05/2005, 19:19
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Osea,lo pongo directamente en el archivo registrar.php ? tal cual como está ahi?

Osea,quedaria asi?



<html>
<head>
<META HTTP-EQUIV="Refresh"

CONTENT="5;URL=http://localhost/default.php">
</head>
<body bgcolor=#009900 text=#FFFFFF>

<?php
error_reporting(E_ALL);
require_once("conexion.php");
$nombre = isset($_GET['nombre'])? $_GET['nombre'] : '';
$apellidos = isset($_GET['apellido']) ? $_GET['apellido'] : '';
$email = isset($_GET['user_email'])? $_GET['user_email'] : '';
$username = isset($_GET['username'])? $_GET['username'] : '';
$password = isset($_GET['user_password'])? $_GET['user_password']:

'';

mysql_query("INSERT into usuarios

(nombre,apellido,user_email,username,user_password ) values

('".$nombre."','".$apellido."','".$user_email."',' ".$username."','".$

user_password."')",$link) or die ( mysql_error());

function quitar($mensaje){
$mensaje = str_replace("<","&lt;",$mensaje);
$mensaje = str_replace(">","&gt;",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',"&quot;",$mensaje);
$mensaje = str_replace("\\\\","&#92",$mensaje);
return $mensaje;
}

if(trim($HTTP_POST_VARS["username"]) != "" &&

trim($HTTP_POST_VARS["user_email"]) != "" &&

trim($HTTP_POST_VARS["user_password"]) != ""
trim($HTTP_POST_VARS["nombre"]) != "" &&
trim($HTTP_POST_VARS["apellido"]) != "" && )
{
$sql ="SELECT codigo FROM usuarios WHERE

username='".quitar($HTTP_POST_VARS["username"])."'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
echo "Error,el nick escogido,o el nombre de equipo ya han sido

registrados,porfavor vuelva a intentar";
}
else
{
$sql = "INSERT INTO usuarios

(username,user_password,nombre,apellido,user_email ) VALUES (";
$sql .= "'".quitar($HTTP_POST_VARS["username"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["user_password"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["apellido"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["user_email"])."'";
$sql .= ",";
mysql_query($sql);
echo "Registro exitoso!,ahora mismo le enviaremos un email para

activar su cuenta";
}
mysql_free_result($result);
}
else
{
echo "Debe completar Todo el formulario para poder continuar...";
}
function f_genera_psw($num=8){ // By Kernellover
$voc = array ("a","e","i","o","u");
$con = array ("b","c","d","f","g","h","j","k","l","m","n","p"," q","r","s","t","w","x","y","z");
$psw = ""; // cadena que contendrá el password.
$vc = mt_rand(0,1); // definde si empieza por vocal o consonante.
for ($n=0; $n<$num; $n++){
if ($vc==1){
$vc=0;
$psw .= $con[mt_rand(0,count($con)-1)];
}
$psw .= $voc[mt_rand(0,count($voc)-1)];
$psw .= $con[mt_rand(0,count($con)-1)];
}
$psw = ereg_replace ("q","qu",$psw);
$psw = ereg_replace ("quu","que",$psw);
$psw = ereg_replace ("yi","ya",$psw);
$psw = ereg_replace ("iy","ay",$psw);
$psw = substr($psw,0,$num);
return $psw;
}
echo f_genera_psw();

?>

</body>
</html>
  #8 (permalink)  
Antiguo 17/05/2005, 19:26
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Cita:
Iniciado por Saldu
Osea,lo pongo directamente en el archivo registrar.php ? tal cual como está ahi?
Nop.. para nada esta cómo lo planteé.. ya te dije en otro post sobre que iluminaras tu código... sería bueno solo mostraras las partes yimplicadas... pero sobre todo una cosa: ¿Para qué quieres generar un password aquí??????

Sobre el crear un password gráfico, quizá lo que busques, tipo PHP-Nuke, yahoo.. gmail y demás donde te dice "escriba lo que ve en la imagen" tienes un FAQ que maneja todo esto completamente.

Esto de generar un password creo và màs planteado a aquellos que guardan su pass en MD5 y que lo pierden.. entonces tienes que crear un nuevo password y enviarlo por correo...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:24.