Drupal 6/7がデフォルトでパスワードを保存するために使用するセキュリティです。MD5、AES、SHAですか?何も見つかりませんでした。
Drupal 8およびDrupal 7はデフォルトでソルトと共にSHA512を使用します。PHPの hash 関数を介してハッシュを何度も実行し、パスワードの最終ハッシュを生成する計算コストを増やします。 ( stretching と呼ばれるセキュリティ手法)。
Drupal 8の場合、実装はオブジェクト指向です。ハッシュメソッドを定義する PasswordInterface があります。そのインターフェースのデフォルトの実装は PhpassHashedPassword class。そのクラス ' hash メソッドは crypt メソッドを呼び出し、ハッシュアルゴリズム、パスワード、および生成されたソルトとしてSHA512を渡します。クラスのcryptメソッドはDrupal 7の _ password_crypt() メソッドとほぼ同じです。
Drupal 7の場合、実装はいくつかのグローバル関数に分割されます: ser_hash_password() および _ password_crypt() 。
Drupal 6は、塩なしのMD5を使用します。関連する関数は ser_save() です。
以下は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\includes\password.incにあります。
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);
}
「// A通常Drupal 7 sha512を使用した7パスワード」。
Drupal 6コアの場合、このメソッドはMD5を使用しますが、私が理解しているように、ソルティングは使用されません。drupal 7ここでの良い記事- http://joncave.co.uk/2011/01/password-storage-in-drupal-and-wordpress/
drupal 8はPhpass(修正版)を使用しています
drupal 7はSHA-512 +塩を使用します
drupal 6および以前のバージョンは、ソルトなしでmd5を使用していました