sql >> データベース >  >> RDS >> Mysql

Crypt()ソルト生成とパスワード暗号化、うまく実行されましたか?

    改善できる点がいくつかありますが、最初にPHPの新機能 password_hash() 。この関数は安全なソルトを生成し、結果のハッシュ値に含めるため、単一のデータベースフィールドに格納できます。 互換性パック もあります 以前のバージョンの場合。

    // Hash a new password for storing in the database.
    // The function automatically generates a cryptographically safe salt.
    $hashToStoreInDb = password_hash($password, PASSWORD_BCRYPT);
    
    // Check if the hash of the entered login password, matches the stored hash.
    // The salt and the cost factor will be extracted from $existingHashFromDb.
    $isPasswordCorrect = password_verify($password, $existingHashFromDb);
    

    コードに関するいくつかの考え:

    1. crypt()を使用してBCryptハッシュを生成するため、ソルトは結果のハッシュの一部になります。個別に保管する必要はありません。
    2. ソルトの生成を改善できます。オペレーティングシステムMCRYPT_DEV_URANDOMのランダムソースを使用してください。
    3. コスト係数を9に変更すると、cryptは2桁を想定しているため、形式は無効になります。



    1. 距離クエリ内のMysql

    2. OracleのTANH()関数

    3. スライドデッキと#SQLintersectionのサンプル

    4. MS SQL Server 2008のポートを見つける方法は?