2010-10-08 15 views
6

Quiero hacer una secuencia de comandos para insertar unos 100 usuarios en una base de datos Drupal 6 - su nombre de usuario, correo y hash de contraseña.¿Qué función devuelve un hash de contraseña válida de Drupal-6?

Después de leer acerca de la clase de PHP que utiliza Drupal 6, no estoy seguro de poder lograrlo. Mi método era enviar a cada usuario un correo como "¡Hola, x! Tu nueva contraseña es y", luego inserta la "y" con hash en la tabla de usuarios de Drupal.

Sé que Drupal devuelve un md5. Pero no solo md5 es la contraseña original, sino una contraseña muy confusa (usando sal y otros métodos).

He examinado el Portable PHP password hashing framework que usa Drupal, pero no creo que funcione solo con un método de copiar y pegar.

Entonces, mi pregunta es: ¿puedo hacer una función de PHP que devuelva un hash de contraseña de Drupal 6 válido para insertarlo en su tabla de usuarios?

+1

¿no podrías simplemente buscar en las fuentes de Drupal? – Andrey

+1

¿Cómo entiendes que yo no? – nevvermind

Respuesta

7

En realidad, Drupal 6 hace no usa cualquier sal para calcular el hash de la contraseña. Es simplemente un md5 de la contraseña

Puede probar esto por su cuenta. Establezca su contraseña a algo.

Calcule el md5 de su contraseña (puede usar este enlace http://www.miraclesalad.com/webtools/md5.php para mayor comodidad).

Usted encontrará que el hash almacenado en la base de datos en la tabla users en la columna de la pass será exactamente el mismo

Este comportamiento de la instalación por defecto de Drupal 6 (el comportamiento puede haber cambiado para Drupal 7). Solo si tienes algún módulo especial instalado, el comportamiento será diferente para Drupal 6.

+0

sí, después de algunos juegos de códigos adicionales, me di cuenta también. yo pensé diferente bueno, md5() ES la respuesta a mi pregunta, supongo – nevvermind

4

Si está creando usuarios mediante programación, debe crear usted mismo la contraseña de texto plano y luego usar la función user_save() para insertar el usuario en la base de datos. Esa función hará hash y guardará todo para usted.

+0

Gracias. Creo que esto es lo que estaba buscando. – nevvermind

+0

@nush: Parece que eres nuevo en StackOverflow ... es posible que quieras "aceptar" una respuesta. Si cree que esto (o cualquier otra respuesta) es la respuesta "correcta", haga clic en la marca de verificación verde debajo de la pregunta. –

2

El módulo user import existente parece que funcionaría para la importación masiva de usuarios. Esto no responde a su pregunta "¿cómo puedo actualizar la contraseña?", Pero eliminaría la necesidad de un script personalizado (probablemente más propenso a errores).

+0

Gracias por la sugerencia. Lo miraré. – nevvermind

Cuestiones relacionadas