2012-07-25 11 views
5

Estoy intentando crear un componente de registro personalizado para TYPO3 en un sitio web externo donde TYPO3 no está instalado (solo uso su base de datos). El problema es que no tengo experiencia en usar TYPO3. Me preguntaba si alguien sabía cómo crear el cifrado de contraseña correcto para TYPO3. Las contraseñas se ve así:¿Usar PHP para crear la contraseña de TYPO3 salado?

$ P $ CEO/XYcbzRH9nLpCwKdp1HhsJGwJum0

Busco a un código php para crear ese mismo cifrado y comprobar la contraseña. Tengo la clave de cifrado de las herramientas de instalación que (creo) se utiliza para la salazón.

¿O existe la posibilidad de guardar contraseñas solo como MD5? No es la mejor opción pero podría ser el único que queda.

he encontrado esta url: http://srv123.typo3.org/TYPO3/Extensions/saltedpasswords/4.6/#compatibility-of-other-extensions-with-salted-user-password-hashes

pero no tengo ni idea de cómo poner en práctica que en mi propio guión.

+1

no encriptan contraseñas! Se filtra en todas partes en estos días porque los desarrolladores creen que necesitan descifrar contraseñas ... Además, no usan MD5(), ya está pirateado. También eche un vistazo a esta pregunta http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords –

Respuesta

2

Al observar el hash proporcionan supongo que el saltedpasswords extensión (responsable de almacenar los hashes salados en la base de datos) en TYPO3 está configurado para utilizar phpass. Por lo tanto, debe poder tomar esta clase y usarla en su secuencia de comandos para crear/verificar contraseñas de la misma forma que lo hace TYPO3.

¿O existe la posibilidad de guardar contraseñas solo como MD5?

Sí, usar contraseñas saladas en TYPO3 es opcional y no obligatorio. Sin embargo, si se supone que cualquier instalación de TYPO3 en el futuro usará esa base de datos, no estoy seguro de cómo TYPO3 manejaría la mezcla de registros cuando algunos de ellos tendrían contraseñas almacenadas como hashes sin sal y algunas como saladas. Mi suposición es que lo manejaría con gracia, reconociendo qué cheque usar para cada hash.

+0

No explicó en su pregunta por qué se está utilizando la base de datos TYPO3, si ya contiene algunos registros y si en el futuro lo utilizará alguna instalación de TYPO3, por lo que mi respuesta podría no ser totalmente precisa. – tmt

+0

El archivo db se está utilizando solo para que los usuarios finales inicien sesión en el otro sitio web para ver algunas páginas. El registro y todo eso se maneja en el sitio web de Typo3. Es por eso que solo necesito la contraseña salada. En cuanto a MD5 solamente, puedo poner pases MD5 en el DB directamente. Después de iniciar sesión, el Typo3 convierte automáticamente el MD5 en una contraseña salada. –

+0

Gracias cascaval, solo la respuesta que necesitaba para dirigirme de la manera correcta. La contraseña salada está configurada para usar phpass. Descargué el marco en: http://www.openwall.com/phpass y logré crear hashes que puedo comparar con los hashes en el db. Necesitaba establecer '$ hash_portable = TRUE;' y eso era todo. Muchas gracias por tu ayuda. –

7

Tener un vistazo a la guía para desarrolladores:

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

Tienes que usarlo en el 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); 
    } 
    } 
} 

Pero, nunca se debe tratar de generar salado contraseña fuera de typo3 porque el cifrado depende de su configuración de typo3.

+0

Eso es justo. No quiero usarlo en la interfaz Typo3. –

13

Obras en 6.X TYPO3:

$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); 
      } 
     } 
    } 
Cuestiones relacionadas