バージョン選択

フォーラム

メニュー

オンライン状況

46 人のユーザが現在オンラインです。 (36 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 46
もっと...

サイト内検索

質問 > 管理機能 > 会員パスワード生成ロジックを作成したい

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
h_tanaka
投稿日時: 2017/8/3 12:04
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1638
会員パスワード生成ロジックを作成したい
EC-CUBE3.0.14

別システムからの顧客データの移行で、パスワードの作成に行き詰まっています。
移行元ではパスワードは平文で扱っていました。

EC-CUBE3の会員情報更新時のパスワード生成ロジックを抜粋してパスワード作成プラグラムを作成しようとしています。

Saltの発行ロジックは次から抜粋しました。
src/Eccube/Controller/Admin/Customer/CustomerEditController.php
src/Eccube/Repository/CustomerRepository.php
vendor/symfony/security/Core/Util/SecureRandom.php

問題は、SecureRandom.php で呼んでいる関数 random_bytes() がどこに定義されているかがわからないことです。
ソース内をgrep検索したところ6件の関数定義が見つかりましたがどれが呼ばれているかわかりません。

どなたかわかりますでしょうか?

以下、作成途中のパスワード作成プラグラムです。

<?php

//step1 ここを環境に合わせて書き換える (app/config/eccube/config.yml内の値を記入)
define("AUTH_MAGIC","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
define('PASSWORD_HASH_ALGOS', 'sha256');

//step2 元の平文パスワードを1行毎追記する
$parr = array(
    'password',
    '123456',
);

echo '<table border="1"><tr><td>平文パスワード</td><td>暗号化パスワード</td><td>salt</td></tr>';
foreach($parr as $k=>$v){
    $salt = createSalt(5);
    echo '<tr><td>' . $v . '</td><td>' . encryptPassword($app, $Customer) . '</td><td>' . $salt . '</td></tr>' ;
}
echo '</table>';



// 以下、EC-CUBE3.0.14のソースより抜粋

/**
 * saltを生成する
 *
 * @param $byte
 * @return string
 */
function createSalt($byte)
{
    return bin2hex(random_bytes($byte));
}

/**
 * 入力されたパスワードをSaltと暗号化する
 *
 * @param $app
 * @param  Customer $Customer
 * @return mixed
 */
function encryptPassword($app, \Eccube\Entity\Customer $Customer)
{
    $encoder = $app['security.encoder_factory']->getEncoder($Customer);

    return $encoder->encodePassword($Customer->getPassword(), $Customer->getSalt());
}

/**
 * Encodes the raw password.
 *
 * @param string $raw  The password to encode
 * @param string $salt The salt
 *
 * @return string The encoded password
 */
function encodePassword($raw, $salt)
{
    if ($salt == '') {
        $salt = 'AUTH_MAGIC';
    }
    $res = hash_hmac(PASSWORD_HASH_ALGOS, $raw . ':' . AUTH_MAGIC, $salt);

    return $res;
}


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » 会員パスワード生成ロジックを作成したい h_tanaka 2017/8/3 12:04
     Re: 会員パスワード生成ロジックを作成したい nyorai 2017/8/3 14:16
       Re: 会員パスワード生成ロジックを作成したい h_tanaka 2017/8/3 14:38
         Re: 会員パスワード生成ロジックを作成したい h_tanaka 2017/8/3 14:40
           Re: 会員パスワード生成ロジックを作成したい nyorai 2017/8/3 14:44
             Re: 会員パスワード生成ロジックを作成したい h_tanaka 2017/8/3 14:50
               Re: 会員パスワード生成ロジックを作成したい nyorai 2017/8/3 15:33
                 Re: 会員パスワード生成ロジックを作成したい h_tanaka 2017/8/3 15:58
                   Re: 会員パスワード生成ロジックを作成したい nyorai 2017/8/4 11:02
                     Re: 会員パスワード生成ロジックを作成したい h_tanaka 2017/8/4 19:04

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,707名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.