カテゴリー
EC-CUBE osCommerce

osCommerceの顧客データを移行する実験03

前回(02)前々回(01)でユーザーデータ抜き出しとパスワードチェックまでやっててその後放置状態でしたが、今回はosCommerceのユーザーパスワードの暗号化で最終回です。

もう長いこと間空いてしまったのでサッサとコード出しときます。

前回同様osCommerceのパスワード処理部分をコピってきてます。

// 仮にフォームから入力されたパスフレーズ
$plain = "FUJIMIDAYO";

// ランダムシード生成
function tep_rand($min = null, $max = null) {
    static $seeded;
    if (!isset($seeded)) {
        mt_srand((double)microtime()*1000000);
        $seeded = true;
    }
    if (isset($min) && isset($max)) {
        if ($min >= $max) {
            return $min;
        } else {
            return mt_rand($min, $max);
        }
    } else {
        return mt_rand();
    }
}

// 暗号化文字列生成
function tep_encrypt_password($plain) {
    $password = '';
    for ($i=0; $i<10; $i++) {
        $password .= tep_rand();
    }
    $salt = substr(md5($password), 0, 2);
    $password = md5($salt . $plain) . ':' . $salt;
    return $password;
}

// 暗号化確認
$ato = tep_encrypt_password($plain);
echo "プレーン:".$plain."<br />";
echo "暗号文字:".$ato."<br />";

んでコレをED-CUBEとかの会員登録処理に埋込む・・・トカするとまた禿げると思いマス。ええ。

あ、今回のコードはosCommerceの下記ファイルからの抜き出しです。(←それを先に書いとけよ!)
/catalog/includes/functions/password_funcs.php
/catalog/includes/functions/general.php

取り急ぎこんな感じ。