Welcart 会員登録用のパスワードのハッシュ値を取得する方法

Welcartでは wp_usces_member テーブルの mem_pass にパスワードの文字列をハッシュ化した値が保存されていますが、ハッシュ化する際には usces_get_hash() というハッシュ値を生成する関数を使っています。

ハッシュ値生成関数

ハッシュ値を生成する関数 usces_get_hash()\usc-e-shop\functions\function.php 内の5496行目に定義されています。

function usces_get_hash( $str, $salt = NULL, $type = 0 ){
	//$hash = md5(trim($str));
	$hash_algos = ( defined('USCES_HASH_ALGOS') ) ? USCES_HASH_ALGOS : 'md5';
	$secret_key = ( defined('USCES_SECRET_KEY') ) ? USCES_SECRET_KEY : '';
	if( $secret_key ) {
		$hash = hash_hmac( $hash_algos, $str.$salt, $secret_key );
	} else {
		$hash = hash( $hash_algos, $str.$salt );
	}
	$args = compact( 'str', 'salt', 'type' );
	return apply_filters( 'usces_filter_get_hash', $hash, $args );
}

ハッシュ値を生成する

実際に test1234 と hoge5678 というパスワード文字列のハッシュ値を生成してみます。

$pass = usces_get_hash( 'test1234' );
var_dump($pass);
string(32) "16d7a4fca7442dda3ad93c9a726597e4"
$pass = usces_get_hash( 'hoge5678' );
var_dump($pass);
string(32) "baea6fbcbc87b62e43f60609bbc0a0bf"

会員登録

上記で生成したハッシュ値のパスワード他必要情報を登録するための以下のようなSQLを用意すれば一括で会員情報を登録することも可能です。

INSERT INTO `wp_usces_member` (ID, mem_cookie, mem_email, mem_pass, mem_name1, mem_name2, mem_name3, mem_name4, mem_zip, mem_address2, mem_address3, mem_tel, mem_fax, mem_delivery_flag, mem_delivery, mem_registered, mem_nicename) 
VALUES (NULL, '', 'info@example.com', '16d7a4fca7442dda3ad93c9a726597e4', '山田', '店舗', 'やまだ', 'てんぽ', '', '', '', '', '', '0', '', CURRENT_TIME(), '' );

動作環境情報

"エックスサーバー" x10
"PHP" 7.4.13
"MySQL" 5.7
"WordPress" 5.7.2
"Welcart e-Commerce" 2.2.4

コメント

タイトルとURLをコピーしました