Back to top

Autore Topic: [RISOLTO] - Utilizzo Password joomla anche per altri scopi.  (Letto 4949 volte)

Offline Mistergions

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Ciao a tutti,
vorrei sapere come posso utilizzare la password di joomla per un programma esterno.
Mi spiego meglio:
Gli utenti s'iscrivono dal sito fatto in joomla, le password verranno criptate secondo la funzione di joomla.
Una volta registrati, dal sito scaricheranno un programma per giocare online, faranno il login dal programma e nn dal portale, quindi come posso fare in modo che dal programma (fatto in java e flash) possano fare il login?quale funzione joomla devo cercare e dove?

« Ultima modifica: 02 Mar 2009, 18:09:48 da Mistergions »

Offline Kriss

  • Team Joomla.it
  • Abituale
  • *******
  • Post: 1763
  • Sesso: Maschio
    • Mostra profilo
Re: Utilizzo Password joomla anche per altri scopi.
« Risposta #1 il: 20 Feb 2009, 17:59:17 »
Ciao,
l'idea non è semplicissima. Il problema è ce tipo di applicazione/componente utilizzi per questa funzione di gioco on line. Se è una estensione di joomla è probabile che ci sia già l'integrazione con gli utenti, altrimenti ci possono essere due soluzioni.
La prima molto semplice: creare un link nel menu di jjomla che punti all'applicazione. Setti questo link visibile ai soli registrati.

La seconda (ma devi avere competenze nello sviluppo dell'applicazione di gioco on line) è quella di interfacciare quell'applicazione con la tabella jos_users del database di joomla.
Ehi, l'email è solo per salutarmi!

Offline Mistergions

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Re: Utilizzo Password joomla anche per altri scopi.
« Risposta #2 il: 20 Feb 2009, 18:24:58 »
Grazie :)
Utilizzo la seconda ozpione.  ;)
Interfaccio il gioco con la tabella jos_users mettendo i vari parametri di connesisone al db.
Ma per quanto riguarda le password?
In MD5 nn funziona, ho già provato. Funziona solo se entro nel db e inserisco nel campo il valore md5 della password, ma nn posso farlo per ogni nuovo utente perchè le password sn già criptate.
Quale metodo usa joomla per criptare la password? la funzione che la genera qual è e dove la trovo?

Offline Mistergions

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Re: Utilizzo Password joomla anche per altri scopi.
« Risposta #3 il: 24 Feb 2009, 13:25:32 »
Qualcuno conosce qualche guida per l'utilizzo del db di joomla?

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re: Utilizzo Password joomla anche per altri scopi.
« Risposta #4 il: 24 Feb 2009, 13:33:51 »
devi andare in bridge tra il programma java e joomla, quindi inviare una connessione al db di Joomla dal programma e verificare che nella tabella degli utenti ci siano quella user e pass

Offline Mistergions

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Re: Utilizzo Password joomla anche per altri scopi.
« Risposta #5 il: 24 Feb 2009, 17:06:53 »
ok
« Ultima modifica: 26 Feb 2009, 19:37:42 da Mistergions »

Offline Mistergions

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Re: Utilizzo Password joomla anche per altri scopi.
« Risposta #6 il: 26 Feb 2009, 19:44:23 »
Ma che codifica devo dare?
Quale metodo usa joomla per criptare la password? la funzione che la genera qual è e dove la trovo?
Mootools mi puo aiutare?
nn so + dove andare a cercare...
« Ultima modifica: 26 Feb 2009, 19:50:23 da Mistergions »

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re: Utilizzo Password joomla anche per altri scopi.
« Risposta #7 il: 26 Feb 2009, 20:13:05 »
md5

Offline Mistergions

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
Re: Utilizzo Password joomla anche per altri scopi.
« Risposta #8 il: 26 Feb 2009, 20:18:16 »
grazie, già provato e nn va.
Una password inserita in md5 manualmente viene convalidata al login del programma, quella di joomla no.
fin'ora ho trovato una piccola funzione ed ho dedotto che mette
parola:salt
Dove trovo la funzione che genera la password?

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re: Utilizzo Password joomla anche per altri scopi.
« Risposta #9 il: 27 Feb 2009, 01:39:36 »

Offline Mistergions

  • Nuovo arrivato
  • *
  • Post: 25
    • Mostra profilo
[RISOLTO] - Utilizzo Password joomla anche per altri scopi.
« Risposta #10 il: 02 Mar 2009, 18:08:53 »
Mettendo la codifica md5 nel java nn funziona. Ho trovato una classe java fatta proprio per questo:


public class Joomla15PasswordHash
{
   public static boolean check(String passwd,String dbEntry) {
      if (passwd==null || dbEntry==null || dbEntry.length()==0)
    throw new IllegalArgumentException();
      String[] arr = dbEntry.split(":",2);
      if (arr.length==2) {
    // new format as {HASH}:{SALT}
    String cryptpass = arr[0];
    String salt = arr[1];
   
    return md5(passwd+salt).equals(cryptpass);
      } else {
         // old format as {HASH} just like PHPbb and many other apps
    String cryptpass = dbEntry;
     
    return md5(passwd).equals(cryptpass);
      }
   }

   static Random _rnd;

   public static String create(String passwd) {
      StringBuffer saltBuf = new StringBuffer();
      synchronized (Joomla15PasswordHash.class) {
    if (_rnd==null) _rnd=new SecureRandom();
    int i;
    for (i=0;i<32;i++) {
       saltBuf.append(Integer.toString(_rnd.nextInt(36),36));
    }
      }
      String salt = saltBuf.toString();

      return md5(passwd+salt)+":"+salt;
   }

   /** Takes the MD5 hash of a sequence of ASCII or LATIN1 characters,
    *  and returns it as a 32-character lowercase hex string.
    *
    *  Equivalent to MySQL's MD5() function
    *  and to perl's Digest::MD5::md5_hex(),
    *  and to PHP's md5().
    *
    *  Does no error-checking of the input,  but only uses the low 8 bits
    *  from each input character.
    */
   private static String md5(String data) {
      byte[] bdata = new byte[data.length()]; int i; byte[] hash;

      for (i=0;i<data.length();i++) bdata=(byte)(data.charAt(i)&0xff );

      try {
         MessageDigest md5er = MessageDigest.getInstance("MD5");
         hash = md5er.digest(bdata);
      } catch (GeneralSecurityException e) { throw new RuntimeException(e); }

      StringBuffer r = new StringBuffer(32);
      for (i=0;i<hash.length;i++) {
         String x = Integer.toHexString(hash&0xff);
         if (x.length()<2) r.append("0");
         r.append(x);
      }
      return r.toString();     
   }
}


Spero possa servire a qualcun altro :D

 



Web Design Bolzano Kreatif