2012-07-25 17 views
5

Sto provando a creare un componente di registrazione personalizzato per TYPO3 su un sito Web esterno in cui TYPO3 non è installato (utilizzo solo il suo database). Il problema è che non ho esperienza con l'uso di TYPO3. Mi stavo chiedendo se qualcuno sapesse come creare la corretta crittografia della password per TYPO3? Le password aspetto:Utilizzo di PHP per creare la password salata TYPO3?

$ P $ CEO/XYcbzRH9nLpCwKdp1HhsJGwJum0

Sto cercando un codice php per creare la stessa crittografia e verificare la password. Ho la chiave di encrytion dagli strumenti di installazione che (credo) viene utilizzata per la salatura.

O c'è la possibilità di salvare le password in quanto solo MD5? Non è l'opzione migliore ma potrei essere l'unico rimasto.

ho trovato questo URL: http://srv123.typo3.org/TYPO3/Extensions/saltedpasswords/4.6/#compatibility-of-other-extensions-with-salted-user-password-hashes

ma non ho idea di come implementare che nel mio script.

+1

NON crittografare le password! Perdite ovunque in questi giorni perché gli sviluppatori pensano di aver bisogno di decifrare le password ... Inoltre non usare MD5(), è già compromesso. Dai anche un'occhiata a questa domanda http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords –

risposta

2

Osservando l'hash fornito Suppongo che la saltedpasswords estensione (responsabile per la memorizzazione hash salate nel database) in TYPO3 è impostato per utilizzare phpass. Dovresti quindi essere in grado di prendere questa classe e usarla nel tuo script per creare/controllare le password nello stesso modo di TYPO3.

O c'è la possibilità di salvare le password in quanto solo MD5?

Sì, utilizzando le password salate in TYPO3 è facoltativo e non obbligatorio. Tuttavia, se in futuro qualsiasi installazione TYPO3 dovesse utilizzare quel database, non sono sicuro di come TYPO3 gestirà la combinazione di record quando alcuni di essi avrebbero le password archiviate come hash non salati e altre come salate. La mia ipotesi è che lo gestirà con garbo, riconoscendo quale assegno usare per ogni hash.

+0

Nella tua domanda non hai spiegato perché viene utilizzato il database TYPO3, se contiene già alcuni record e se in futuro verrà utilizzato da qualche installazione di TYPO3, quindi la mia risposta potrebbe non essere completamente accurata. – tmt

+0

Il db viene utilizzato solo per gli utenti front-end per accedere all'altra pagina Web per visualizzare alcune pagine. La registrazione e simili sono tutti gestiti sul sito web Typo3. Ecco perché ho solo bisogno della password salata. Per quanto riguarda solo MD5, posso inserire direttamente i passaggi MD5 nel db. Dopo l'accesso, MD5 viene convertito automaticamente da Typo3 in una password salata. –

+0

Grazie cascaval, solo la risposta che avevo bisogno di indirizzarmi nel modo giusto. Le password salate sono infatti impostate per l'uso di phpass. Ho scaricato il framework all'indirizzo: http://www.openwall.com/phpass e sono riuscito a creare hash che posso confrontare con gli hash nel db. Avevo bisogno di impostare '$ hash_portable = TRUE;' e così è stato. Grazie mille per il vostro aiuto. –

7

Dai un'occhiata alla guida per gli sviluppatori:

1.5.1 Creating a new salted user password hash from a given plain-text password

Bisogna utilizzarlo nella typo3-Frontend:

$password = 'XXX'; // plain-text password 
$saltedPassword = ''; 

if (t3lib_extMgm::isLoaded('saltedpasswords')) { 
    if (tx_saltedpasswords_div::isUsageEnabled('FE')) { 
    $objSalt = tx_saltedpasswords_salts_factory::getSaltingInstance(NULL); 
    if (is_object($objSalt)) { 
     $saltedPassword = $objSalt->getHashedPassword($password); 
    } 
    } 
} 

Ma, non si dovrebbe mai cercare di generare salato password al di fuori di typo3 perché la crittografia dipende dalle impostazioni di typo3.

+0

Questa è solo la cosa. Non voglio usarlo nel frontend Typo3. –

13

Opere su TYPO3 6.x:

$password = 'XXX'; // plain-text password 
    $saltedPassword = ''; 

    if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('saltedpasswords')) { 
     if (\TYPO3\CMS\Saltedpasswords\Utility\SaltedPasswordsUtility::isUsageEnabled('FE')) { 
      $objSalt = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance(NULL); 
      if (is_object($objSalt)) { 
       $saltedPassword = $objSalt->getHashedPassword($password); 
      } 
     } 
    } 
Problemi correlati