Bueno, pues no habia visto la funcion
mcrypt_create_iv() no la conocia jeje.
Podrias crear el salt usando la primera y ultima letra del nombre de usuario, por ejemplo si es
juancho usar "jo":
Código HTML:
<form action="" method="post">
Nombre: <input type="text" name="nombre" />
Contraseña: <input type="password" name="contrasena" />
<button type="button" onclick="this.form.action='registro.php';this.form.submit()">Registrarse</button>
<button type="button" onclick="this.form.action='acceso.php';this.form.submit()">Acceder</button>
</form>
registro.php
Código PHP:
<?php
$mysqli = new mysqli("localhost", "root", "", "pepitoGrillo");
// $mysqli->select_db("pepitoGrillo"); <- ???!
$nombre = trim($_POST['nombre']);
$salt = $nombre[0] . $nombre[strlen($nombre) - 1];
$contrasena = crypt($_POST['contrasena'], $salt);
if($mysqli->query("INSERT INTO usuarios (nombre,contrasena) VALUES ('$nombre','$contrasena')")){
echo 'Registro OK etc., etc...';
exit;
}
echo 'Error';
?>
acceso.php:
Código PHP:
<?php
$mysqli = new mysqli("localhost", "root", "", "pepitoGrillo");
// $mysqli->select_db("pepitoGrillo"); <- ???!
$nombre = trim($_POST['nombre']);
$salt = $nombre[0] . $nombre[strlen($nombre) - 1];
// esta manera no es recomendable pero...
$contrasenaCrypt = $mysqli->query("SELECT contrasena FROM usuarios WHERE nombre='$nombre' LIMIT 1")->fetch_assoc()['contrasena'];
// ...niños, no lo hagan en casa ;)
if($contrasenaCrypt && crypt($_POST['contrasena'], $salt) == $contrasenaCrypt){
echo 'Login OK etc., etc...';
exit;
}
echo 'Error';
?>
Bueno espero te sirva de guia para hacer lo que requieres.
Saludos!