Drupal的默认密码加密方法是什么?
我试图弄清楚Drupal 6 / 7默认用于存储密码的安全性是什么。是MD5,AES,SHA吗?我一直找不到任何东西。
我试图弄清楚Drupal 6 / 7默认用于存储密码的安全性是什么。是MD5,AES,SHA吗?我一直找不到任何东西。
Drupal 8 和 Drupal 7 默认使用 SHA512 和盐。他们通过PHP的哈希函数多次运行哈希,以增加生成密码最终哈希的计算成本(一种称为拉伸的安全技术)。
在Drupal 8中,实现是面向对象的。有一个密码接口,它定义了一个哈希方法。该接口的默认实现位于 PhpassHashedPassword 类中。该类的哈希方法调用在SHA512中传递的加密方法作为哈希算法,密码和生成的盐。该类的crypt方法与Drupal 7的_password_crypt()方法几乎相同。
在Drupal 7中,实现被分成几个全局函数:user_hash_password()和_password_crypt())。
Drupal 6使用不含盐的MD5。相关函数为 user_save()。
下面是来自 Drupal 7 的示例哈希:
“pass” : “$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\include\password.inc