サイトを oscommerce ストアから商用アプリケーションに移行しています。
新しいアプリケーションは、直接 MD5 暗号化を使用してパスワードを保存します。Oscommerce は MD5 を使用してパスワードを保存しますが、ランダムな 2 桁の数字 (平文で提供) もハッシュに追加します。
これは誰かがフォーラムに投稿したものです:
追加された 2 文字は、
hash=md5(twocharactersPlainPassword)のような方法でハッシュを作成するためのものです
。つまり: 2letters: 74
Plain Password: PaSs
hash=md5('74PaSs')=acaa6e689ae0008285320e6617ca8e95:74
Oscommerce がパスワードを暗号化するコードは次のとおりです。
// This function makes a new password from a plaintext password.
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;
}
// This funstion validates a plain text password with an encrypted password
function tep_validate_password($plain, $encrypted) {
if (tep_not_null($plain) && tep_not_null($encrypted)) {
// split apart the hash / salt
$stack = explode(':', $encrypted);
if (sizeof($stack) != 2) {
return false;
}
if (md5($stack[1] . $plain) == $stack[0]) {
return true;
}
}
return false;
}
私の新しいカートがパスワードを暗号化する方法は次のとおりです。
if ($admin_password_encrypt == 1) {
$password_match = md5($password);
} else {
$password_match = $password;
}
oscommerce カートから新しいカートに顧客のパスワードをインポートする方法はありますか?