Contraseñas encriptadas (phpBB)

MakeaDS

Buenas, tengo una página web con un foro phpBB y, para que no hubiera que registrarse dos veces, quiero hacer que el login de la página web use las mismas cuentas que el foro.
Esto seria fácil haciendo la consulta de login de la web a la base de datos del foro phpBB..., el problema está en que las contraseñas en dicha base de datos están encriptadas.

Hay alguna forma de hacer esto que quiero? alguna forma de desencriptar las contraseñas?

Gracias de antemano y un saludo

SeiYa

No necesitas desencriptarlas.

Están encriptadas usando la función md5($string); de php.

Tu coges, a groso modo, tu formulario de login y pass:

$login = $POST['usuario'];
$pass = md5($
POST['contrasena']);

Y ya con $login y $pass haces la consulta a la bbdd.

Obviamente, debes parsear y escapar caracteres para que no te hagan sql injections :P

MakeaDS

joder que sencillo xD
muchas gracias

W

#2 y como se parsean ?

yo hago esto

htmlspecialchars($pass)
htmlspecialchars($login)

Por cierto tengo entendido que el cifrado MD5 es facilmente descodificado mediante tablas de comparacion.

Por lo que yo he hecho esto

md5(md5($pass))

Crees que asi ya habra mas seguridad o es una tonteria.

DaveTS

para los pwds yo uso la siguiente formula md5(pass.usr.time())
y creo que eso ya es mas complicado para desencriptar

SeiYa

Yo para parsear uso esta:

function Limpiar_Codigo(&$arrayes)
{
foreach ($arrayes as $clave => $valor)
{
if (!is_array($_POST[$clave]))
{
$arrayes[$clave] = trim($arrayes[$clave]);
$arrayes[$clave] = strip_tags($arrayes["$clave"]);
//$arrayes[$clave] = escapeshellcmd ($arrayes["$clave"]);
$arrayes[$clave] = Eliminarcaracteres($arrayes["$clave"]);
}
else
{
limpiar_codigo ($arrayes["$clave"]);
}
}
}

El de escape shell cmd no la hago ahora mismo porque con eliminacaracteres me va bien.

eliminarcaracteres lo que hace es:

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

Obviamente sin espacios.

No se como se verá, pero vamos, que por ejemplo sustituye el caracter < por el código html que representa a ese caracter, así si ponen < b > todo junto en un comentario, no sale en negrita y sale el código html (ya controlaré yo por bbcode lo que sea xD)

#4

Yo hago 3 md5 y pista XD

Pero en teoría si que tiene que haber más seguridad, porque si por ejemplo, codifico a 3 veces el último hash corresponde a un hash que corresponde a un hash que corresponde a 'a'

En las tablas arcoiris no tienen hashes de hashes.

De todas formas tu puedes coger y hacer un minialgoritmo que coja el hash y el último caracter le ponga el primero, a ojos de un hacker que saque los hashes estará sacando hashes erróneos porque no sabrá eso, y puedes complicarlo más cambiando posiciones pares por impares y tal y cual.

Escribí un articulín chiquitín en mi blog sobre contraseñas md5 y la conclusión que tuve es la triple encriptación y pista XD

Por si lo queréis leer: http://www.wallack.es/Secciones/Noticias/encriptacion-de-contrasenas-segura.html

W

Leido con mucho gusto.

Me esperaba que trataras mas otros metodos de encriptacion aparte del MD5 (ahora no me se los nombres) , y ya tenia una idea de mas o menos lo que has dicho pero esta muy bien el articulo, si señor.

La idea que ha puesto Davets tambien me parece muy buena, encriptar la password, usuario y fecha, (estas 2 ultimas no cambian asi que tambien es una buena idea).

erdanblo

#6 Hay que aprender regexp :/

SeiYa

#8 es un script viejo XD

De todas formas para encriptar con md5 tienes mil maneras de hacerlo seguro, como directamente añadir un texto que tu quieras a la contraseña o mil chorradas más.

erdanblo

No lo digo por la función de codificar, lo digo por los str_replace :p

Por cierto, no sé quien lo dijo pero..... "encriptar es meter en cripta", ¿esto no es codificar? (que no estoy muy seguro :P)

SeiYa

Si, bueno, tonterías de esas las oigo siempre por la tele... una bomba explotó... NO! explosionó es la forma verbal correcta cerdos de la tele!!

Usuarios habituales

  • SeiYa
  • erdanblo
  • willy__chaos
  • DaveTS
  • MakeaDS