2

私はいくつかの言語にわたるさまざまなbcryptの実装を見ており、ほとんどの言語での文字制限に気づいています。具体的には、node-bcrypt、phpのbcrypt、およびpy-bcryptがすべて示す最大72文字です。

アプリケーションが事前にSHA-256またはSHA-512チェックサムを介してユーザー入力を実行し、bcryptのより長い入力を有効にする場合の長所と短所は何ですか?

4

1 に答える 1

1

ここにあるCLI アプリケーションは、8 ~ 56 の「文字」に制限されています (これは C であるため、文字は私が推測するものであれば何でもかまいません)。後でパスワードベースのキー導出関数にフィードするものに制限を作成する理由は、天国が知っています(ほぼ確実に無制限の入力が必要になります)。

十分な強度と出力サイズを持つ安全なハッシュを追加しても、セキュリティが低下することはありません。

結果を bcrypt ライブラリに供給する前に、結果を 16 進数にエンコードします。これは、ほぼ確実に文字列を想定しています (「奇数」の 00h バイトに打たれないでください)。SHA-256 を使用することもできます。後で bcrypt に入力した場合、多少の違いはないと思います。そうしないと、base64 を使用せざるを得なくなる可能性があります。

最後に、このような状況に陥らないようにしてください。非標準の暗号化を実行することは、ほぼ間違いなく悪いことです。

于 2012-07-10T18:27:21.357 に答える