我试图弄清楚Drupal 6/7默认使用什么安全性来存储密码。是MD5,AES,SHA吗?我一直找不到任何东西。
答案 0 :(得分:66)
Drupal 8和Drupal 7默认使用SHA512加盐。它们通过PHP的hash函数多次运行哈希,以增加生成密码的最终哈希(称为stretching的安全技术)的计算成本。
使用Drupal 8,实现是面向对象的。有一个PasswordInterface定义了一个哈希方法。该接口的默认实现位于PhpassHashedPassword类中。该类'hash方法调用传递SHA512的crypt方法作为哈希算法,密码和生成的盐。类的crypt方法与Drupal 7的_password_crypt()方法几乎相同。
使用Drupal 7,实现分为几个全局函数:user_hash_password()和_password_crypt()。
Drupal 6使用不带盐的MD5。相关功能是user_save()。
答案 1 :(得分:30)
以下是Drupal 7的示例哈希:
“传递”:“$ S $ Dxl65W9p07LfQU7jvy5CnsyDpMoLujiAgzy123khcg1OJi / P9pKS”
字符0-2是类型($ S $是Drupal 7)
然后使用base64将二进制结果转换为字符串。
$ count = 1<< $ count_log2;
$ hash = hash($ algo,$ salt。$ password,TRUE);
do {$ hash = hash($ algo,$ hash。$ password,TRUE);
} while( - $ count);
整个过程可以在以下位置找到: mydrupalsite \包括\ password.inc
答案 2 :(得分:11)
可以在www \ includes \ password.inc
中查看function user_check_password($password, $account) {
if (substr($account->pass, 0, 2) == 'U$') {
// This may be an updated password from user_update_7000(). Such hashes
// have 'U' added as the first character and need an extra md5().
$stored_hash = substr($account->pass, 1);
$password = md5($password);
}
else {
$stored_hash = $account->pass;
}
$type = substr($stored_hash, 0, 3);
switch ($type) {
case '$S$':
// A normal Drupal 7 password using sha512.
$hash = _password_crypt('sha512', $password, $stored_hash);
break;
case '$H$':
// phpBB3 uses "$H$" for the same thing as "$P$".
case '$P$':
// A phpass password generated using md5. This is an
// imported password or from an earlier Drupal version.
$hash = _password_crypt('md5', $password, $stored_hash);
break;
default:
return FALSE;
}
return ($hash && $stored_hash == $hash);
}
它清楚地写着“//使用sha512正常的Drupal 7密码。”
答案 3 :(得分:5)
这是MD5,据我了解,没有使用任何盐腌。编辑 - 这是drupal 6.对于drupal 7,使用了一些更高级的哈希。这里有一篇好文章 - http://joncave.co.uk/2011/01/password-storage-in-drupal-and-wordpress/
答案 4 :(得分:0)
drupal 8正在使用Phpass(修改版)
drupal 7使用SHA-512 + salt
drupal 6和之前的版本使用的是没有盐的md5
答案 5 :(得分:0)
这是我从 drupal.org 找到的链接:
https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Password%21PhpassHashedPassword.php/function/PhpassHashedPassword%3A%3Acrypt/8.2.x https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Password%21PhpassHashedPassword.php/function/PhpassHashedPassword%3A%3Ahash/8.2.x