Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2009
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
Alta de usuarios en Joomla

Hola.

Tengo que dar de alta muchisimos usuarios en Joomla. Todos los usuarios me los ha pasado en un archivo txt. Así que estoy pensando hacer un programita en delphi7 que los de de alta en la base de datos MySql.

El problema es que no se como se codifica la clave en Joomla. Había pensado generarla aleatoriamente.

¿ alguien ha hecho algo similar o me puede decir como codificar la clave ?

Gracias.
__________________
Saludos Cordiales.
------------------

Responder Con Cita
  #2  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pero, Joomla es software libre, su código fuente está disponible, ¿no puedes mirar tú mismo dónde se lleva a cabo lo que dices?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 12-03-2009
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
He mirado el código, y lo tengo bastante confuso porque aunque php no es complicado, se llaman a muchos archivos y me lio bastante.

Además la pregunta es también por si alguien ya ha hecho alguna aplicación que sirva para lo mismo.
__________________
Saludos Cordiales.
------------------

Responder Con Cita
  #4  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En el "script" "/installation/installer/helper.php" puede verse este código en la línea 280:

Código PHP:
// Create random salt/password for the admin user
$salt JUserHelper::genRandomPassword(32);
$crypt JUserHelper::getCryptedPassword($adminPassword$salt);
$cryptpass $crypt.':'.$salt
El contenido de la variable "cryptpass" es lo que se termina guardando en la base de datos, como puede verse unas líneas más abajo. Creo que te da ya alguna pista de por dónde empezar. O también puedes esperar a ver si algún compañero ha hecho algo como lo que necesitas, lee este hilo, y tiene a bien publicar su solución.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 12-03-2009
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 21
JXJ Va por buen camino
Usa MD5 para la contraseña

el detalle es que a mi me ha pasado que la constraseña no me la reconoce.
en las ultimas versiones de joomla... la 1.5 y algunas de las 1.2

por que en las versiones 1.2 antes de los ultimos parches y updates.
con poner la contraseña a la que le aplicabas MD5.. ya quedaba.
ejemplo

dsaoho23hoq12

y ahora. el joomla le agrega :
como a la mitad de la contraseña
y ya no corresponde a MD5.. sino a otro codigo que no se cual sea.

sdjasdasoh12:dwjqodn23

si vas crear usuarios. nuevos... mejor es crearlso con la mismas contraseña y que
ellos al final definan una nueva contraseña

pero si ya tienes los usuarios y su contraseña en un archivo de texto.
solo es meterlos en la Base de datos.
Responder Con Cita
  #6  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por JXJ
y ya no corresponde a MD5.. sino a otro codigo que no se cual sea.
Véase el código que he puesto más arriba, descárgese Joomla y véase en detalle los métodos JUserHelper::genRandomPassword() y JUserHelper::getCryptedPassword(). Igual habría que revisar un poco más (el código que he puesto es el que se usa para crear al usuario por defecto, así que creo yo que podría servir, pero, igual habría que investigar un poco más, donde se lleve a cabo el registro de usarios, por si cambia algo, aunque, creo que no. Desde luego creo que es un buen sitio por donde empezar.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 12-03-2009
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
He localizado la función que desencripta..
Pero no me entero de nada. Creo que convierte a hexadecimal pero he realizado pruebas con una clave conocida y no da el resultado ni por asomo, tanto en MD5 Sha1

Código PHP:
function getCryptedPassword($plaintext$salt ''$encryption 'md5-hex'$show_encrypt false)
    {
        
// Get the salt to use.
        
$salt JUserHelper::getSalt($encryption$salt$plaintext);

        
// Encrypt the password.
        
switch ($encryption)
        {
            case 
'plain' :
                return 
$plaintext;

            case 
'sha' :
                
$encrypted base64_encode(mhash(MHASH_SHA1$plaintext));
                return (
$show_encrypt) ? '{SHA}'.$encrypted $encrypted;

            case 
'crypt' :
            case 
'crypt-des' :
            case 
'crypt-md5' :
            case 
'crypt-blowfish' :
                return (
$show_encrypt '{crypt}' '').crypt($plaintext$salt);

            case 
'md5-base64' :
                
$encrypted base64_encode(mhash(MHASH_MD5$plaintext));
                return (
$show_encrypt) ? '{MD5}'.$encrypted $encrypted;

            case 
'ssha' :
                
$encrypted base64_encode(mhash(MHASH_SHA1$plaintext.$salt).$salt);
                return (
$show_encrypt) ? '{SSHA}'.$encrypted $encrypted;

            case 
'smd5' :
                
$encrypted base64_encode(mhash(MHASH_MD5$plaintext.$salt).$salt);
                return (
$show_encrypt) ? '{SMD5}'.$encrypted $encrypted;

            case 
'aprmd5' :
                
$length strlen($plaintext);
                
$context $plaintext.'$apr1$'.$salt;
                
$binary JUserHelper::_bin(md5($plaintext.$salt.$plaintext));

                for (
$i $length$i 0$i -= 16) {
                    
$context .= substr($binary0, ($i 16 16 $i));
                }
                for (
$i $length$i 0$i >>= 1) {
                    
$context .= ($i 1) ? chr(0) : $plaintext[0];
                }

                
$binary JUserHelper::_bin(md5($context));

                for (
$i 0$i 1000$i ++) {
                    
$new = ($i 1) ? $plaintext substr($binary016);
                    if (
$i 3) {
                        
$new .= $salt;
                    }
                    if (
$i 7) {
                        
$new .= $plaintext;
                    }
                    
$new .= ($i 1) ? substr($binary016) : $plaintext;
                    
$binary JUserHelper::_bin(md5($new));
                }

                
$p = array ();
                for (
$i 0$i 5$i ++) {
                    
$k $i +6;
                    
$j $i +12;
                    if (
$j == 16) {
                        
$j 5;
                    }
                    
$p[] = JUserHelper::_toAPRMD5((ord($binary[$i]) << 16) | (ord($binary[$k]) << 8) | (ord($binary[$j])), 5);
                }

                return 
'$apr1$'.$salt.'$'.implode(''$p).JUserHelper::_toAPRMD5(ord($binary[11]), 3);

            case 
'md5-hex' :
            default :
                
$encrypted = ($salt) ? md5($plaintext.$salt) : md5($plaintext);
                return (
$show_encrypt) ? '{MD5}'.$encrypted $encrypted;
        }
    } 
Alquien que sepa php podría indicarme ?
__________________
Saludos Cordiales.
------------------

Responder Con Cita
  #8  
Antiguo 13-03-2009
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
Como mis conocimientos de PHP son demasiados escasos para descifrar como se crea la clave cifrada he pensado lo siguiente:

Crear el usuario aleatoriamente y poner una clave conocida y única para todos.
La clave la puedo obtener de un usuario actual, copiando todo el tocho de dígitos.

Es algo chapuza, pero puede valer.
__________________
Saludos Cordiales.
------------------

Responder Con Cita
  #9  
Antiguo 13-03-2009
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 21
JXJ Va por buen camino
esa es lo que mal explique que podias hacer.

la conocidicima clave. 123456789
para todos los usuarios y ya ellos ingresan y modifican la clave.
aunque podrias dar la seudo seguridad .. de que de el usuario 1 al 100
la misma clave. del 101 al 201. otra clave igual .
y asi...

suerte.
Responder Con Cita
  #10  
Antiguo 13-03-2009
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 17
Cecilio Va por buen camino
Pues si, es muy coerente, crear claves por tramos.

Aunque el nombre de usuario será 4 digitos del número de cliente y otros 4 dígitos aleatorios.

Y unidos a tramos de password, la seguridad mejorará.

De todas formas, voy a intentar contactar con el equipo de joomla o con algún foro de php, ya que va a ser algo para largo, y me gustaría hacerlo bien.
__________________
Saludos Cordiales.
------------------


Última edición por Cecilio fecha: 13-03-2009 a las 18:18:27. Razón: faltaba puntualizar algo.
Responder Con Cita
  #11  
Antiguo 14-03-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Cecilio Ver Mensaje
he pensado lo siguiente:

Crear el usuario aleatoriamente y poner una clave conocida y única para todos.
La clave la puedo obtener de un usuario actual, copiando todo el tocho de dígitos.

Es algo chapuza, pero puede valer.
Pues no sé si es chapuza o no pero si sirve es buena.

De todas formas, me di a la tarea de investigar un poco y me encontré con el plugin userport que te permite importar y exportar usuarios. Tú sólo tienes que proveer los datos así:

Código:
Hugo Donald, hugo, hugo@disney.com, hugo001
Paco Donald, paco, paco@disney.com, paco002
Luis Donald, luis, luis@disney.com, luis003
es decir, cuatro campos:

nombre completo, nombre de usuario, email, contraseña

Por defecto, pone los usuarios como autores, pero puedes configurarlo para que los ponga como usuarios registrados, editor, etc. También puedes configurar el separador (por defecto es la coma).

La contraseña es plana, esto es, sin encriptar. De manera que puedes pre-procesar tu archivo de texto y colocar la contraseña que desees y el plugin se encarga de encriptarla.

Por lo demás, el plugin es muy fácil de instalar, nada más te descargas el zip, te vas al menú Extensions|Install/Uninstall y en la sección "Upload Package File" buscas el archivo descargado y oprimes el botón "Upload File & Install".

El plugin lo verás en el menú Components.

El único pero que le veo es que no te permite cargar el archivo de texto sino que tienes que copiar y pegar su contenido en un recuadro. Pero salvo eso, lo he probado y funciona muy bien.

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Joomla & Interbase AMINOA2R Firebird e Interbase 3 16-07-2008 08:54:53
alta de usuarios en linux desde php irene PHP 1 21-08-2007 18:50:24
Joomla Alimentarlo con RSS JXJ PHP 5 09-07-2007 23:03:09
Alta de usuarios Win 2003 Server jorelivi Varios 2 21-06-2007 20:44:45
Por que dar de alta a los usuarios... Arturo MySQL 2 04-02-2005 23:45:01


La franja horaria es GMT +2. Ahora son las 13:00:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi