2010-04-28 10 views
8

Estoy intentando crear un componente de registro personalizado para Joomla, y me preguntaba si alguien sabía cómo crear el cifrado de contraseña correcto para joomla. contraseñas Joomla aspecto:usando php para crear una contraseña de usuario joomla?

fbae378704687625a410223a61c66eb1: VM6DwmVWHTwpquDq51ZXjWWADCIc93MR

que creo que son MD5 (o algo así) y una forma de cifrado? Estoy buscando un código php para crear ese mismo cifrado.

Saludos

+0

Compruebe esto -> http://stackoverflow.com/questions/35333417/joomla-3-4-password-generation-method/35337002#35337002 – Joomler

Respuesta

11
$salt = JUserHelper::genRandomPassword(32); 
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt); 
$password = $crypt.':'.$salt; 

Después de un poco más búsqueda me encontré con mi respuesta, gracias a todos por su ayuda :)

EDIT: se me olvidó mencionar que es necesario incluir esta línea antes de llamar JUserHelper:

jimport ('joomla.user.ayudante');

+0

esto no funciona en joomla 3.4 –

-1
//function to encrypt the string 
    function encode5t($str) 
    { 
     for($i=0; $i<5;$i++) 
     { 
     $str=strrev(base64_encode($str)); //apply base64 first and then reverse the string 
     } 
     return $str; 
    } 

    //function to decrypt the string 
    function decode5t($str) 
    { 
     for($i=0; $i<5;$i++) 
     { 
     $str=base64_decode(strrev($str)); //apply base64 first and then reverse the string} 
     } 
     return $str; 
    } 

en esta función, he codificadas de la cadena 5 veces con base64_encode y la inversión de la cadena con strrev() y para desencriptar 5 veces mediante la inversión de la cadena primero y luego aplicar base64_decode().

+3

** NO HAGA ESTO! ** Esto no es "cifrado" "en cualquier sentido, se trata de una simple ofuscación que no derrotará ni siquiera al atacante más básico". –

2

+1 para almacenar el hash de la contraseña en lugar de almacenar la contraseña.

Para protegerse de los ataques precomputation, debe usar una sal al azar. Además, probablemente sea una buena idea usar un algoritmo hash más fuerte como SHA-256, que creo que es compatible con PHP. Vea Secure hash and salt for PHP passwords para más información.

No conozco PHP, pero la mayoría de los lenguajes tienen una biblioteca que admite md5 y (y otros algoritmos hash) también aparece PHP. He encontrado esto:

string md5 (string $str [, bool $raw_output = false ]) 

Calcula el hash MD5 de cadena usando el »RSA Data Security, Inc. MD5 Message-Digest Algorithm, y devuelve ese resumen.

He aquí un ejemplo:

<?php 
$password = 'apple'; 

if (md5($password) === '1f3870be274f6c49b3e31a0c6728957f') { 
    echo "Password correct"; 
} 
?> 
12

De joomla Foro, eso es lo que sucede detrás:

  1. generar una contraseña
  2. Generar 32 caracteres aleatorios
  3. Concatenate 1 y 2
  4. MD5 (3)
  5. almacén 4: 2

Ejemplo:

  1. Generar una contraseña - vamos a utilizar 'contraseña'
  2. Generar 32 caracteres aleatorios - vamos a utilizar 'WnvTroeiBmd5bjGmmsVUnNjppadH7giK'
  3. Concatenate 1 y 2 - passwordWnvTroeiBmd5bjGmmsVUnNjppadH7giK
  4. MD5 (3) - 3c57ebfec712312f30c3fd1981979f58
  5. almacén 4: 2 - 3c57ebfec712312f30c3fd1981979f58: WnvTroeiBmd5bjGmmsVUnNjppadH7giK
1

Usted puede ir a /libraries/joomla/user y ver la función bind() dentro de user.php

Todas las contraseñas creadas por los usuarios en el momento del registro estarán aquí.

Cuestiones relacionadas