6

在互联网上搜索后,我知道使用 drupal 7,密码不再通过 md5 加密。

在 Drupal 7 中加密密码的可能方法是什么?

4

3 回答 3

12

使用 drupal 7,密码不再通过 md5 加密。在 drupal7 中有几种获取/设置密码的方法。使用 drush (供您参考,在您的情况下未使用):

drush upwd admin --password="newpassword"

没有 drush,如果您对服务器有 cli 访问权限:(供您参考,在您的情况下未使用)

cd <drupal root directory>

php scripts/password-hash.sh 'myPassword'

现在复制生成的哈希并将其粘贴到查询中:

update users set name='admin', pass='pasted_big_hash_from_above' where uid=1;
于 2014-04-24T07:58:12.767 回答
3

谢谢马利克。

经过搜索,我发现了不同的解决方案。以下解决方案也有效

如果您在无法连接的远程环境中工作,则可以将此指定代码放在一个文件中,例如 password.php,例如:

<?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.";

然后使用:http://domain.tld/password.php?p='MyPassword' 访问您的网站。哈希值将出现在您的浏览器选项卡上。完成后不要忘记将其删除。所以,如果你想使用一些密码函数生成,看看 _password_crypt() 和 _password_generate_salt()

于 2014-04-24T09:21:54.830 回答
3

user_hash_password()功能可用于哈希密码,如果您想从 Drupal 外部使用它,您需要引导 Drupal 配置。

chdir("/path/to/drupal");
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_CONFIGURATION);
user_hash_password($password);
于 2014-04-24T16:52:26.523 回答