Tom
Tom

Reputation: 162

How to encrypt password for drupal 7

I want add new user from another script and I need create password for Drupal7 users, I can't find exact function which is doing it on Drupal, what function is that?

Upvotes: 1

Views: 12501

Answers (1)

Haza
Haza

Reputation: 2999

With drupal 7, password are no more encrypted through md5.

There are several way to get/set a password in drupal7.

Using drush (for your information, not used in your case):

drush upwd admin --password="newpassword"

Without drush, if you have a cli access to the server : (for your information, not used in your case)

cd <drupal root directory>
php scripts/password-hash.sh 'myPassword'

Now copy the resultant hash and paste it into the query:

update users set name='admin', pass='pasted_big_hash_from_above' where uid=1;

If you are working on a remote environment on which you cannot connect, you can put this specified code in a file such as password.php such as this one:

<?php
if (isset($_GET['p'])) {
  require_once dirname(__FILE__) . '/includes/bootstrap.inc';
  require_once dirname(__FILE__) . '/includes/password.inc';
  print _password_crypt('sha512', $_GET['p'], _password_generate_salt(DRUPAL_HASH_COUNT));
  exit();
}
print "No password to hash.";

And then hit your site using: http://domain.tld/password.php?p='MyPassword'. The hash will appear on your browser's tab.
Don't forget to remove it once you done it.

So, if you want to use some password function generation, have a look on _password_crypt() and _password_generate_salt()

Upvotes: 12

Related Questions