[解決済み] データベースにBcryptハッシュ化されたパスワードを格納するために使用する列の種類/長さは何ですか?
2022-04-30 05:23:35
質問
ハッシュ化したパスワード(BCryptを使用)をデータベースに保存したいのですが、どうすればよいですか?この場合、どのような型が良いでしょうか?また、正しい長さはどれでしょうか?BCryptでハッシュ化されたパスワードは常に同じ長さなのでしょうか?
EDIT
ハッシュの例
$2a$10$KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3LqtVvpyvHZf0MwvNfVu
いくつかのパスワードをハッシュ化した結果、BCryptは常に60文字のハッシュを生成しているようです。
EDIT 2
実装に触れず申し訳ありません。私が使っているのは jBCrypt .
解決方法は?
bcryptのmodular crypt形式は以下のように構成されています。
-
$2$
,$2a$
または$2y$
を識別する ハッシュアルゴリズムとフォーマット -
コストパラメータを示す2桁の値、その後に
$
-
53文字でBase64エンコードされた値(アルファベットの
.
,/
,0
-9
,A
-Z
,a
-z
とは異なるものである。 標準的なBase 64エンコーディング アルファベット)で構成されています。- 22文字のソルト(132ビットのうち実質的に128ビットしか復号化されていない)
- 31文字の暗号化出力(186ビットのうち実質184ビットのみ解読)
したがって、合計の長さはそれぞれ59バイトまたは60バイトになります。
2a形式を使うので、60バイト必要です。そのため、MySQLでは
CHAR(60) BINARY
または
BINARY(60)
(参照
は
_bin
と
バイナリ
照合順序
をご覧ください)。
CHAR
はバイナリセーフではなく、等価性はバイト値だけでなく実際の照合順序に依存します。
A
と等しいものとして扱われます。
a
. 参照
は
_bin
と
binary
照合順序
をご覧ください。
関連
-
[解決済み】カラムのデータが切り捨てられた?
-
[解決済み] mysqldです。dir を data に変更できません。サーバーが起動しません
-
[解決済み] mysql 拡張は非推奨で、将来的に削除されます: 代わりに mysqli か PDO を使ってください [重複] 。
-
[解決済み] MySQLです。テーブルを作成できません (errno: 150)
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] ブーリアン値を格納するために使用するMySQLデータ型
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み] bcryptはどうして塩を内蔵しているのですか?
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
-
[解決済み】ハッシュ化されたパスワードフィールドに使用するデータ型と長さは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】MySQLのエラーコードです。MySQL WorkbenchでUPDATE中に1175のエラーが発生しました。
-
コマンドでmysqlに接続中、'mysql'が内部または外部コマンドとして認識されない エラーは解決されました。
-
MySQLとのPython統合でAttributeErrorが発生する: モジュール 'socket' には 'AF_UNIX' という属性がない
-
[解決済み] Error Dropping Database (Can't rmdir '.test', errno: 17)
-
[解決済み] MySQLで日付のみのパラメータを使用してタイムスタンプの日付を比較する方法は?
-
[解決済み] Mysql: const テーブルを読み込んだ後、不可能な場所に気づいた。
-
[解決済み] DateTime 日付と時間によるグループ化
-
[解決済み] bcryptはどうして塩を内蔵しているのですか?
-
[解決済み】ハッシュ化されたパスワードフィールドに使用するデータ型と長さは?
-
[解決済み】SQL 大文字と小文字を区別する文字列の比較