Webシステムにおいてユーザーのパスワードはsha1などのハッシュアルゴリズムを用いてハッシュ化(暗号化)した上でデータベースに保存するのが一般的ですが、EC-CUBEでは少々複雑なハッシュ化を行なっています。
EC-CUBE2.10系や2.11系、2.12系のハッシュ化の詳細は以下から。
EC-CUBEのパスワード生成方法
パスワードのハッシュ化は『/data/class/util/SC_Utils.php』内の『sfGetHashString()』関数が担っています。
/** * パスワードのハッシュ化 * * @param string $str 暗号化したい文言 * @param string $salt salt * @return string ハッシュ暗号化された文字列 */ function sfGetHashString($str, $salt) { $res = ''; if ($salt == '') { $salt = AUTH_MAGIC; } if (AUTH_TYPE == 'PLAIN') { $res = $str; } else { $res = hash_hmac(PASSWORD_HASH_ALGOS, $str . ':' . AUTH_MAGIC, $salt); } return $res; }
『PASSWORD_HASH_ALGOS』や『AUTH_MAGIC』などの定数は『/data/config/config.php』内で設定されています。
また『$salt』はデータベース内の『dtb_member』や『dtb_customer』内にユーザー毎に保存されています。
コメント
[…] [EC-CUBE] 2.11系のパスワード生成方法 | 自由が丘で働くWeb屋のブログWebシステムにおいてユーザーのパスワードはsha1などのハッシュアルゴリズムを用い てハッシュ化(暗号化)した上でデータベースに保存するのが一般的ですが、EC-CUBE では少々複雑なハッシュ化を行なっています。 EC-CUBE2.10系や2.11系、2.12系の …blog.diginnovation.com/archives/5418/ […]