Professional Documents
Culture Documents
Como Encriptar Contraseñas Con MD5 en PHP
Como Encriptar Contraseñas Con MD5 en PHP
Soy administrador de una nueva PTC llamada LatinBux.us. He escuchado que el Script
que utilizo es muy vulnerable a ataques de hackers. Me han dicho que la única solución es
encriptar mi contraseña (administrador) y la de mis usuarios, utilizando MD5 en PHP.
Tengo un servidor pago, pero este no acepta SSL. y la verdad es muy bueno y no quiero
cambiarlo xD.
La verdad es que no tengo nada de conocimientos en esa area!! me urge mucho una
respuesta (lo mas clara posible)
lee el manual...
http://php.net/md5
pues como tienes tu registro de usuario?? tu loggin?? ahi es donde debes indicar el
encriptamiento con la funcion md5 de esto en la web te aseguro que hay mucho tutorial
pero en el manual hay varios ejemplos de todas maneras has una prueba
Código PHP:
Ver original
1. $var = 123;
2. echo $var."<br/>";
3. echo md5($var);
asi de sencillo es encriptar pero en el manual te explican mejor la funcion y en la web hay
bastante material
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
//encriptamos la password
$contrasena=md5($_POST['contrasena'])
luego al momento de hacer login se compara el dato guardado en la base con el dato que
el user ingresa en el campo de texto de la contraseña, obviamente tambien hay que
encriptarlo al vuelo, si coinciden se inicia la sesion sinó NOP.
Saludos
__________________
APRENDE -> VideoTutoriales
Código PHP:
<?php
function limitatexto( $texto, $limite )
{
if( strlen($texto)>$limite )
{
$texto = substr( $texto,0,$limite );
}
return $texto;
}
function mostrarTemplate($tema, $variables)
{
//var_dump($variables);
extract($variables);
eval("?>".$tema."<?");
}
function parsearTags($mensaje)
{
$mensaje = str_replace("[citar]", "<blockquote><hr width='100%' size
='2'>", $mensaje);
$mensaje = str_replace("[/citar]", "<hr width='100%' size='2'></bloc
kquote>", $mensaje);
return $mensaje;
}
// funcion para validar email
function ValidaMail($pMail) {
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-
zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$", $pMail ) ) {
return true;
} else {
echo "Inserte un E-mail valido"; exit();
}
}
// minimo de carateres
function minimo($contenido) {
if (strlen($contenido) < 3) {
echo "Su nombre de usuario debe contene almenos 3 caracteres";include('f
ooter.php'); exit();
} else {
// echo "todo bien...";
return $contenido;
}
}
function minimopass($contenido) {
if (strlen($contenido) < 6) {
echo "Su contraseña debe tener al menos 6 caracteres";include('footer.ph
p'); exit();
} else {
// echo "todo bien...";
return $contenido;
}
}
// funcion para sanitizar variables
function limpiar($mensaje)
{
$mensaje = htmlentities(stripslashes(trim($mensaje)));
$mensaje = str_replace("'"," ",$mensaje);
$mensaje = str_replace(";"," ",$mensaje);
$mensaje = str_replace("$"," ",$mensaje);
return $mensaje;
}
function shout($nombre_usuario){
if (ereg("^[a-zA-Z0-9\-_]{3,20}$", $nombre_usuario)) {
// echo "El campo $nombre_usuario es correcto<br>";
return $nombre_usuario;
} else {
echo "The Field $nombre_usuario is not valid<br>";include('footer
.php');
exit();
}
}
// universal cleaner function
function uc($mensaje)
{
if (ereg("^[a-zA-Z0-9\-_]{3,20}$", $mensaje)) {
// echo "El campo $mensaje es correcto<br>";
$mensaje = htmlentities(stripslashes(strtolower(trim($mensaje))));
$mensaje = str_replace("'"," ",$mensaje);
$mensaje = str_replace(";"," ",$mensaje);
$mensaje = str_replace("$"," ",$mensaje);
return $mensaje;
} else {
echo "The Field $mensaje is not Valid<br>";include('footer.php');
exit();
}
}
//funcion para añadir smylies
function caretos($texto,$ruta)
{
$i="<img src=\"$ruta/";
$i_="\" >";
$texto=str_replace(":)",$i."icon_smile.gif".$i_,$texto);
$texto=str_replace(":D",$i."icon_biggrin.gif".$i_,$texto);
$texto=str_replace("^^",$i."icon_cheesygrin.gif".$i_,$texto);
$texto=str_replace("xD",$i."icon_lol.gif".$i_,$texto);
$texto=str_replace("XD",$i."icon_lol.gif".$i_,$texto);
$texto=str_replace(":|",$i."icon_neutral.gif".$i_,$texto);
$texto=str_replace(":(",$i."icon_sad.gif".$i_,$texto);
$texto=str_replace(":'(",$i."icon_cry.gif".$i_,$texto);
$texto=str_replace(":O",$i."icon_surprised.gif".$i_,$texto);
$texto=str_replace("B)",$i."icon_cool.gif".$i_,$texto);
$texto=str_replace("8|",$i."icon_rolleyes.gif".$i_,$texto);
$texto=str_replace("O_O",$i."icon_eek.gif".$i_,$texto);
$texto=str_replace(":P",$i."icon_razz.gif".$i_,$texto);
$texto=str_replace(":?",$i."icon_confused.gif".$i_,$texto);
$texto=str_replace("^:@",$i."icon_evil.gif".$i_,$texto);
$texto=str_replace("^_-",$i."icon_frown.gif".$i_,$texto);
$texto=str_replace("!(",$i."icon_mad.gif".$i_,$texto);
$texto=str_replace("^)",$i."icon_twisted.gif".$i_,$texto);
$texto=str_replace(";)",$i."icon_wink.gif".$i_,$texto);
$texto=str_replace(":B",$i."drool.gif".$i_,$texto);
return $texto;
}
// ip real
function getRealIP()
{
if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
{
$client_ip =
( !empty($_SERVER['REMOTE_ADDR']) ) ?
$_SERVER['REMOTE_ADDR']
:
( ( !empty($_ENV['REMOTE_ADDR']) ) ?
$_ENV['REMOTE_ADDR']
:
"unknown" );
// los proxys van añadiendo al final de esta cabecera
// las direcciones ip que van "ocultando". Para localizar la ip re
al
// del usuario se comienza a mirar por el principio hasta encontra
r
// una dirección ip que no sea del rango privado. En caso de no
// encontrarse ninguna se toma como valor el REMOTE_ADDR
$entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);
reset($entries);
while (list(, $entry) = each($entries))
{
$entry = trim($entry);
if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry,
$ip_list) )
{
// http://www.faqs.org/rfcs/rfc1918.html
$private_ip = array(
'/^0\./',
'/^127\.0\.0\.1/',
'/^192\.168\..*/',
'/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
'/^10\..*/');
$found_ip = preg_replace($private_ip, $client_ip, $ip_list[1
]);
if ($client_ip != $found_ip)
{
$client_ip = $found_ip;
break;
}
}
}
}
else
{
$client_ip =
( !empty($_SERVER['REMOTE_ADDR']) ) ?
$_SERVER['REMOTE_ADDR']
:
( ( !empty($_ENV['REMOTE_ADDR']) ) ?
$_ENV['REMOTE_ADDR']
:
"unknown" );
}
return $client_ip;
}
?>
if (strlen($contenido) < 6) {
echo "Su contraseña debe tener al menos 6 caracteres";include('footer.ph
p'); exit();
} else {
// echo "todo bien...";
return md5($contenido);
}
}
__________________
APRENDE -> VideoTutoriales
Cita:
Iniciado por shamaka
Donde deberia indicar el encripotamiento??
Me huele a grito...
Ademas, en el manual esta bien explicado, supongo que el resto te queda a ti (determinar
donde va cada md5())
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
Ok hermano, estudiare mejor el manual, otra cosa. Si quisiera verificar que las
contraseñas se están encriptando, es decir, para saber que he hecho todo bien, que debo
hacer. Ay alguna forma de saber que esta funcionado bien lo que he hecho.
Cita:
Iniciado por truman_truman
Si, entrar a la base de datos y ver que paso
Bien hermano muchas Gracias a todos, fueron de mucha ayuda! Ahora me pondré a
estudiar mejor el manual para ver si mañana puedo encriptar mis contraseñas.
Hasta luego.
#13 (permalink)
24/11/2010, 20:44
Sourcegeek Fecha de Ingreso: mayo-2009
Colaborador Ubicación: $mex['B.C.'];
Mensajes: 1.821
Antigüedad: 3 años, 11 meses
Puntos: 319
Respuesta: Como encriptar contraseñas con MD5 en PHP??
Por ultimo, si lo que quieres es encriptar para un login, al tratar de iniciar sesion tienes
que hacer algo asi;
Código PHP:
if (md5($_POST['pass']) == $campo_enviado_del_form) {
//Pass correcta...
}else{
//Pass incorrecta
}
Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
#14 (permalink)
24/11/2010, 20:51
Fecha de Ingreso: noviembre-2010
Mensajes: 84
shamaka
Antigüedad: 2 años, 5 meses
Puntos: 7
Respuesta: Como encriptar contraseñas con MD5 en PHP??
Cita:
Iniciado por Sourcegeek
Por ultimo, si lo que quieres es encriptar para un login, al tratar de iniciar sesion tienes
que hacer algo asi;
Código PHP:
if (md5($_POST['pass']) == $campo_enviado_del_form) {
//Pass correcta...
}else{
//Pass incorrecta
}
Saludos!
Bien por ejemplo este es parte mi archivo login. (El primero es el original. El segundo lo
he modificado.)
Código PHP:
require('funciones.php');
$username=uc($_POST['username']);
$password=uc($_POST['password']);
if ($password==NULL) {
echo "La password no fue enviada";
}else{
require('config.php');
$query = mysql_query("SELECT username,password FROM tb_users WHERE usern
ame = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto"
Código PHP:
require('funciones.php');
$username=uc($_POST['username']);
$password=uc($_POST['password']);
if (md5 $password==NULL) {
echo "La password no fue enviada";
}else{
require('config.php');
$query = mysql_query("SELECT username,password FROM tb_users WHERE usern
ame = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto";
esto no vá :
if (md5 $password==NULL) {
$password=uc($_POST['password']);
$password=md5($password);
__________________
APRENDE -> VideoTutoriales
#16 (permalink)
24/11/2010, 20:59
Fecha de Ingreso: noviembre-2010
Mensajes: 84
shamaka
Antigüedad: 2 años, 5 meses
Puntos: 7
Respuesta: Como encriptar contraseñas con MD5 en PHP??
Entendido. =) Esto quiere decir que estoy encriptando mi Login? Bueno lo probare!
Luego les cuento como va.
#17 (permalink)
24/11/2010, 21:05
Fecha de Ingreso: noviembre-2010
Mensajes: 84
shamaka
Antigüedad: 2 años, 5 meses
Puntos: 7
Respuesta: Como encriptar contraseñas con MD5 en PHP??
Ya lo he hecho, ahora cuando pongo mi pass me dice que es incorrecto. Que debo hacer?
Cita:
Iniciado por truman_truman
$password=uc($_POST['password']);
$password=md5($password);
¿pero saben que tiene todo esto de malo?
Código PHP:
echo md5(''); // d41d8cd98f00b204e9800998ecf8427e
si se fijan aún un valor nulo o vacío genera una cadena MD5 valida, por lo cual no tendría
caso la seguridad...
if ($pass !== FALSE)
{
$pass_md5 = md5(uc($pass));
$sql = "SELECT * FROM usuarios WHERE pass = '$pass_md5'";
}
Edito: bueno, la explicación es sencilla... realizar la consulta siempre y cuando la entrada
de datos sea correcta!!