EC-CUBE 2.11 顧客データのお引越し その1 | φ(..)メモとして残しておこう…

EC-CUBE 2.11 顧客データのお引越し その1

ショップサーブから、ユーザーデータのお引越し。
とりあえず、生パスワードから暗号化パスワード生成は以下の通り。


---------------------------------------------------------------------

//HASH_ALGOSとAUTH_MAGICの指定
define ('PASSWORD_HASH_ALGOS', 'sha256');
define ('AUTH_MAGIC', '*');
*に入る部分は/data/config/config.phpを参照。

//HASHを作成(パスワードの暗号化)
$res = hash_hmac(PASSWORD_HASH_ALGOS, $old_pass . ":" . AUTH_MAGIC, $salt);

---------------------------------------------------------------------

要は、これらを使ってデータベースに再登録したデータをアップデートすればおk。
まずは、ショップサーブ(とかいろんなサイト)の顧客データを、dtb_customerに合わせて成形。
salt値はエクセルでランダムに生成っと。
で、以下を実行。



-----------------------------------------------------------------------

//DBアクセス部分は省略。

//HASH_ALGOSとAUTH_MAGICの指定
define ('PASSWORD_HASH_ALGOS', 'sha256');
define ('AUTH_MAGIC', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaa');(←値は適当ですょ)

//顧客データ取得
$sql = "SELECT password,salt,customer_id FROM dtb_customer;";//saltの値はインポート前にエクセル関数でランダム生成してある

$data = mysql_query($sql,$link) or die("失敗!");

while( $dat = mysql_fetch_array($data,MYSQL_ASSOC) ){

$password[] = $dat;

}

//取得した配列分のループ処理
foreach($password as $val){

$old_pass = $val[password];
$salt = $val[salt];
$customer_id = $val[customer_id];

//HASHを作成(パスワードの暗号化)
$res = hash_hmac(PASSWORD_HASH_ALGOS, $old_pass . ":" . AUTH_MAGIC, $salt);

//dtb_customerのpasswordの値を$res(作成したHASH)で書き換えるSQL
$sql = "UPDATE dtb_customer SET password = '" . $res . "' where customer_id = " . $customer_id . ";";

//クエリ実行
mysql_query($sql, $link) or die("書き込み失敗…orz->SQL:".$sql);

//---------------------------------------------

//メール送信functionを実行(アカウントががメールアドレスに変わったので案内メールを送らなきゃ)
Mailsend($customer_id);(←ここはなくてもおk)


}

-----------------------------------------------------------------------



とりあえず、これで生パスワードが暗号化されて
アカウント:メールアドレス
パスワード:暗号化された以前のパスワード
でログイン可能になりますた。