2010-10-08 13 views
6

Voglio fare uno script per inserire circa 100 utenti in un database Drupal 6 - il loro nome utente, hash di posta e password.Quale funzione restituisce un hash di password valido per Drupal-6?

Dopo aver letto della classe PHP utilizzata da Drupal 6, non sono sicuro di poterlo fare. Il mio metodo era di inviare ad ogni utente una mail come "Ciao, x! La tua nuova password è y", quindi inserisci l'hash "y" nella tabella utente di Drupal.

So che Drupal restituisce un md5. Ma non è solo la password originale di md5, ma una password molto confusa (usando salt e altri metodi).

Ho esaminato l'utilizzo di Drupal Portable PHP password hashing framework, ma non penso che funzioni solo con un metodo copia + incolla.

Quindi, la mia domanda è: posso creare una funzione PHP che restituisca un hash di password Drupal 6 valido per inserirlo nella sua tabella utente?

+1

non potresti semplicemente esaminare le fonti di Drupal? – Andrey

+1

come hai capito che non l'ho fatto? – nevvermind

risposta

7

In realtà, Drupal 6 fa non utilizzare qualsiasi sale per calcolare l'hash della password. È solo un semplice md5 della password

Puoi provare questo per te stesso. Imposta la tua password su qualcosa.

Calcolare l'md5 della password (è possibile utilizzare questo collegamento http://www.miraclesalad.com/webtools/md5.php per comodità).

Troverete che l'hash memorizzato nel database nella tabella users nella colonna pass sarà esattamente lo stesso

questo comportamento per l'installazione di default di Drupal 6 (il comportamento potrebbe essere cambiato per Drupal 7). Solo se hai installato un modulo speciale, il comportamento sarà diverso per Drupal 6.

+0

sì, dopo un po 'di gambling di codice, l'ho capito anche io. ho pensato diverso. bene, md5() è la risposta alla mia domanda credo – nevvermind

4

Se si stanno creando utenti in modo programmatico, è necessario creare manualmente la password in chiaro e quindi utilizzare la funzione user_save() per inserire l'utente nel database. Quella funzione cancellerà e salverà tutto per te.

+0

Grazie. Penso che questo sia quello che stavo cercando. – nevvermind

+0

@nush: sembra che tu sia nuovo su StackOverflow ... potresti voler "accettare" una risposta. Se ritieni che questa (o qualsiasi altra risposta) sia la risposta "corretta", fai clic sul segno di spunta verde sotto la domanda. –

2

Il modulo user import esistente sembra funzionare per l'importazione di utenti in blocco. Questo non risponde alla domanda "Come faccio a cancellare la password", ma rimuoverebbe la necessità di uno script personalizzato (probabilmente più soggetto a errori).

+0

Grazie per il suggerimento. Lo esaminerò. – nevvermind