メサイア・ワークス

他のサイトでもEC-CUBEのID&パスワードを使えるようにする。

他のサイトでもEC-CUBEのID&パスワードを使えるようにする。

あまり需要はないかもしれませんが、EC-CUBEの関連サイトなんかを作った時には便利かもしれません。
やり方は至って単純で、EC-CUBEが使っているMySQLを外部のPHPから叩いているだけです。
ただ、会員情報が入っているdtb_customerテーブルのpasswordは平文ではなくSHA256でハッシュ化されています。

単純にパスワード文字列をsha256でハッシュ化すると、レインボーテーブル(ありがちな単語を予めハッシュ化したテーブル)に弱くなるので、パスワード+乱数などを組み合わせてからハッシュ化します。この時の乱数をソルトといいます。
EC-CUBEでは、以下の2つのソルトを使っているようです。
1つ目は、AUTH_MAGICは、EC-CUBEインストール時に生成される小文字アルファベット乱数(data/config/config.php)
2つ目は、文字通りのsaltは、会員登録時に生成される10ケタの小文字アルファベット乱数(cutomerテーブルのsaltフィールド)

なので、以下の手順でログインを行う
AUTH_MAGICは予め取得しておく
ログインIDであるメールアドレスをキーにレコードを取得
取得したsaltフィールド、AUTH_MAGIC、入力されたパスワードを使って、hash_hmac関数でハッシュ化。
DBから取得したハッシュ化パスワードと同じなら認証成功!

以下、サンプルソースです。

モバイルバージョンを終了