EC-CUBE 2.11 顧客データのお引越し その1
ショップサーブから、ユーザーデータのお引越し。
とりあえず、生パスワードから暗号化パスワード生成は以下の通り。
要は、これらを使ってデータベースに再登録したデータをアップデートすればおk。
まずは、ショップサーブ(とかいろんなサイト)の顧客データを、dtb_customerに合わせて成形。
salt値はエクセルでランダムに生成っと。
で、以下を実行。
とりあえず、これで生パスワードが暗号化されて
アカウント:メールアドレス
パスワード:暗号化された以前のパスワード
でログイン可能になりますた。
とりあえず、生パスワードから暗号化パスワード生成は以下の通り。
---------------------------------------------------------------------
//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)
}
-----------------------------------------------------------------------
とりあえず、これで生パスワードが暗号化されて
アカウント:メールアドレス
パスワード:暗号化された以前のパスワード
でログイン可能になりますた。