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

Bcryptハッシュパスワードをデータベースに保存するためにどの列タイプ/長さを使用する必要がありますか?

    bcryptのモジュラー暗号化フォーマットは

    で構成されています
    • $ 2 $ $ 2a $ または$2y $ ハッシュアルゴリズムとフォーマット を特定する
    • コストパラメータを示す2桁の値と、それに続く $
    • 53文字の長さのbase-64でエンコードされた値(アルファベットのを使用します。 / 0 9 A z a z これは、標準のBase64エンコーディング とは異なります。 アルファベット)からなる:
      • 22文字のソルト(事実上、デコードされた132ビットのうち128ビットのみ)
      • 31文字の暗号化された出力(事実上、186のデコードされたビットのうち184ビットのみ)

    したがって、全長はそれぞれ59バイトまたは60バイトです。

    2a形式を使用する場合、60バイトが必要になります。したがって、MySQLの場合は、 CHAR(60)BINARY またはBINARY(60) _binを参照してください。 およびバイナリ 照合 違いについては)

    CHAR バイナリセーフではなく、等式はバイト値だけに依存するのではなく、実際の照合に依存します。最悪の場合A aと等しいものとして扱われます 。 _binを参照してください。 およびbinary 照合 詳細については。



    1. PHP PDO:文字セット、セット名?

    2. FrankenQueries:SQLとNoSQLが衝突するとき

    3. PostgreSQL:接続を一時的に無効にします

    4. 新しいRACインスタンスを手動で追加する