New question

Question:

Date: 14-09-2015 19:02:09 (In Spanish)

Ayudenme a entender los conceptos de los hash?[Resolved]

Hola compañeros de PHP Central, queria ver si me ayudaban a entender mas sobre la encryptacion de los passwords aun mas la verdad es que siempre he tenido dificultad para aprenderlos :/
Aunque tampoco soy tan malo y al menos se crearlos lo que me falla siempre y no entiendo son como comprobarlos aqui un ejemplo que no entiendo:

<?php
$var1 = "hola";
$skat = "6363787474hjhahahhGhgHb659hhfhfhfhfj";
$resul_hash = sha1($var1);
$result_hash = hash("sha256", $skat . $resul_hash);
$result_len = strlen($result_hash);
echo $result_hash . "<br />";
echo $result_len . "<br />";

if(isset($_POST['send'])) {
$hash = "9f88102569cdd706b8d690e3a3e574e46d0b2719754b9622860e2d7b0256e61f";
$skat = "6363787474hjhahahhGhgHb659hhfhfhfhfj";
$pass = $_POST["pass"];
if(hash("sha256", $skat . $pass) == $hash) {
$ui = "password correcto";
} else {
	 $ui = "password incorrecto";
}
}
?>

<html>
<head>
	<title></title>
</head>
<body>
<form action="<?=$_SERVER["PHP_SELF"];?>" method="post">
	<input type="text" name="pass" />
	<br />
	<input type="submit" name="send" />
</form>
<br />
<strong><?php echo $ui;?></strong>
</body>
</html>


eventualmente si logro que funcione con sha1 y md5 7.7 pero ya hablando que tengo que combinarlo con un salt ect ect ahi es cuando ya no le entiendo como comprobarlo, el codigo de arriba me da password incorrecto cuando escribo hola , por lo cual el if esta mal , no supe hacer la comprobacion :/

lo que quisiera es que me ayudaran a entender esto conceptos y tambien a saber si se puede mejorar este forma de encryptar los password con este codigo, que yo hice, mas tampoco se como comprobarlo xD:

<?php
/*$salt = "78hjgjgjgj656ahajujj66K//Ggjj*&%4hjjajahsjhhHhjHGygyyu763";
for($i = 0; $i < 22; $i++) {
$change_salt = $salt[rand(0, 22)];
}
echo $change_salt;
*/
/*function crypt_blowfish_bydinvaders($password, $digito = 7) {
$set_salt = './1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$salt = sprintf('$2a$%02d$', $digito);
for($i = 0; $i < 22; $i++)
{
	$salt .= $set_salt[rand(0, 22)];
}
return crypt($password, $salt);
}
*/
function generateRandomString($length = 15) {
	if(isset($_POST['send'])) {
	$pass = $_POST['pass'];
    $characters = '0123456789abcd&*#fghijklmno*-_0Uyu%pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return hash("sha512", $pass . $randomString);
	}
}

// Echo the random string.
// Optionally, you can give it a desired string length.
?>

<html>
<head>
</head>
<body>
// esto solo lo agrege como si fuera el usuario poniendo su password y agregandolo al salt y sha512
<form action="<?=$_SERVER["PHP_SELF"];?>" method="post">
<input type="text" name="pass" />
<input type="submit" name="send" />
</form>
<br />
<strong><?php echo generateRandomString();?></strong>
</body>
</html>


hay forma de mejorarlo?
y si es asi como y tambien ayudenme a saber como comprobarlo a la hora del login :/ ahi siempre me falla cuando ya no es el password md5 y sha1.

Espero su apoyo, Saludos.
Tags: $_GET - $_POST - HASH - PHP - Question - Security Votes: 2 - Answers: 2 - Views: 11 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 15-09-2015 14:11:07 Hola Crismart:

    Creo que esto te va a ser de ayuda Hacer un Login

    Un saludo
    Daniel
      Votes: 2 - Link answer
     
  • Date: 15-09-2015 14:52:10 Hola Daniel se como crear un login y todo eso, de los usuarios lei bien y tambien me habla un pooc sobre conmo funcionan los hash, lo que entendi fue que el password que ingrese el usuario se debe tranformar en el hash que almenenamos en la base de datos ejemplo sha1 como puse en ejemplo uno de arriba muy bien si es asi creo que ya le entendo n.n deja ver y al rato te cuento si me funciono si es asi daria como resuelta la pregunta n.n y te daria tu like por buena respuesta :')   Votes: 1 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In