問題タブ [pbkdf2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
219 参照

python - CCKeyDerivationPBKDF はスレッドセーフですか?

並行環境でパスワードハッシュを生成および検証するために使用CCKeyDerivationPBKDFしていますが、それがスレッドセーフかどうかを知りたいです。関数のドキュメントではスレッド セーフについてはまったく言及されていないため、現在は安全のためにロックを使用していますが、必要がなければロックを使用したくありません。

0 投票する
1 に答える
2040 参照

delphi - DelphiでのPBKDF2の実装?

Delphiでこのアルゴリズムを使用するにはどうすればよいですか?Delphiでこれを行うクラスはありますか?

ありがとうございました。

0 投票する
2 に答える
3698 参照

javascript - crypto.pbkdf2 は非同期ですが、同期として扱うにはどうすればよいですか?

パスワードのハッシュに node.js で pbkdf2 を使用しています。

私の問題は、認証の要求に応答していて、渡された資格情報が正しいかどうかを認証している最中であることです。pbkdf2 はかなりの時間がかかる可能性があるため (反復のサイズによっては) 非同期であると推測しています。ただし、残りの認証ロジックを別のメソッドに移動してコールバックを利用するのは少し見苦しく思えます。

タイマーを使用するか、連続するすべての認証ロジックを別の関数にスローするよりも良いアプローチはありますか? コールバックを使用する必要があると言う人がほとんどであることはわかっていますが、私の使用例では、これは意味がありません。渡されたパスワードに pbkdf2 を適用するまで、認証を続行できません。

0 投票する
1 に答える
1453 参照

cryptography - HMAC SHA-1 を使用する PBKDF2 はどのようにして 20 バイト以上を返すことができますか?

Nodecrypto.PBKDF2が HMAC SHA-1 を使用している場合、キーの長さが 20 バイトを超えることはあり得ますか?

これが私が理解していることです(明らかに間違っています):crypto.PBKDF2(password, salt, iterations, keylen, callback)HMAC SHA-1を使用して、ソルトでパスワードをハッシュします。次に、そのハッシュを取得し、同じソルトでハッシュします。何回繰り返してもそれを繰り返し、結果を返します。結果は、で指定したバイト数に切り捨てられますkeylen

SHA-1 は 160 ビットまたは 20 バイトを出力します。しかし、 から 20 バイト以上を要求できkeylen、20 バイトを超えるcrypto.PBKDF2とデータが繰り返されません。それは私には意味がありません。

ここで私は何を誤解していますか?

やってみて:

20 番目のバイトの後に何らかのパターンが見られると思いますが、そうではありません。

0 投票する
0 に答える
656 参照

c#-4.0 - C#でハッシュパスワードを取得するには?

パスワードを取得/リセット/パスワードを忘れた場合の適切な方法は何ですか?

Rfc2898DeriveBytes クラスで Password Based Key Derivation Function 2 (PBKDF2) を使用しました。

では、ハッシュパスワードをリセットする方法は何ですか。

0 投票する
1 に答える
3188 参照

php - 基本的なphppbkdf2ハッシュ

私はphpに比較的慣れておらず、パスワードのハッシュに関しては塩のポイントを理解し始めたばかりです(私は思いますか?)。とにかく、これが私の問題です...

現在、ユーザー名、パスワード、ソルトフィールドを持つmysqlデータベースがあります。パスワードフィールドの長さは64文字、ソルトフィールドは3文字です。登録時に、各ユーザー名にランダムなソルトが割り当てられます。私はこれに問題はありません(私は信じています)。まず、ユーザーの希望するパスワードが次の方法でハッシュされます。

次に、ユーザーの希望するパスワードが、次の手順でpbkdf2に含まれているソルトでハッシュされ、データベースに入力されます。

私の問題はログインです。データベース内のハッシュされたパスワードをユーザーが入力したパスワードと比較すると、常に!=に戻ります。ログインを検証するために私が行うことは次のとおりです。

したがって、トラブルシューティングのために、すべての出力をエコーし​​ました。これは、正しいパスワードを入力したときのように見えます(そして、ログインしません)。

入力パスワード:3d8bc905668c1a1cca5b53a78941d3ca4673e12df6ac5e98e19fa47b153406f6e66913e43bf60478907ca07429b0cf90c808ce2097e0544cc44d298bfb7b85ad

DBパスワード:3d8bc905668c1a1cca5b53a78941d3ca4673e12df6ac5e98e19fa47b153406f6

入力パスワードの最初の64文字は正しいが、合計128文字まで続くことに注意してください。DBパスワードはわずか64です。

よろしくお願いします!

0 投票する
1 に答える
1419 参照

c++ - パスワードベースの暗号化OpenSSLC++

私は、医療現場で使用されるアプリケーションを作成するチームに所属しています。SQLiteデータベースに保存されているパスワードに基づいてAESを使用して暗号化されたローカルデータを保存しようとしています(ハッシュおよびソルト)。これを行うことについての情報はあまりないようです。私はトリックを逃していますか?

編集:

投票が下がっているように見えるので、ここに私がすでに知っていることのいくつかがあります。

PBKDF2鍵導出を使用する必要があると想定しています(SOでここに表示されます)。次に、この回答に沿って何かをする必要があります。私の問題は、これらすべてがC++のOOP機能を利用しないCコードであるということです。OpenSSL用の優れたC++ラッパー、または問題を解決するためのクリーンで読み取り可能なOOコードを作成するために使用できるその他のサードパーティライブラリが欠落していることを期待しています。

PSこれはUniのソフトウェアエンジニアリングプロジェクトであり、ソフトウェアの受信者は慈善団体であるため、このアプリケーションの料金は支払われていません。

0 投票する
2 に答える
3564 参照

java - なぜ私のpbkdf2の実装はとても遅いのですか(SQLCipherに対して)?

Xoomタブレットで簡単なAndroidアプリを作成しました。これは、SQLCipherデータベースに文字列のメモを保存するだけです。

ユーザーは、SQLCipherlibによってデータベースに使用されるパスフレーズを入力するように求められます。これは今のところうまく機能し、非常にスムーズです。

今、私は認証の目的で小さなPBKDF2アルゴリズムも実装しました(実際、将来的に他のファイルを暗号化したいのですが、データベースに保存することはできません)。しかし今のところ、私は自分のpbkdf2アルゴリズムが正しいかどうかをチェックするようになりました。私はjavax.cryptoとjava.securityライブラリのみを使用しました。

次のようなコードスニペット:

ソルトは、SecureRandomで生成された16バイトの乱数です。

そこで、キーとソルトをハードコーディングし、認証のために派生キーを比較しました(テストケースのみ!)

私の問題は、Xoomでは、反復が500のみに設定されているにもかかわらず、派生関数が完了するまで約5秒続くことです。

AFAIK SQLCipherは、デフォルトで4000の反復回数を使用しており、キーが間違っているか正しい場合、即座に応答します。(反復を4000に設定した場合、少なくとも15秒かかります)

問題は、それを非効率的に実装したのか、それともSQLCipherのパフォーマンスが非常に優れているため(ネイティブNDK関数など)なのかということです。

よろしくお願いしますps:申し訳ありませんが、私の英語はまだそれほど素晴らしいものではありません!

編集:

申し訳ありませんが、私は十分に明確ではありませんでした:-)

PBKDF2は遅い(具体的には、ブルートフォース攻撃を遅くするための反復量)と想定されていることを私は知っています。それがまさに私が求めている理由です!反復回数を5000と言うように設定したかった(これは受け入れられず、15秒以上)

私が言ったように、SQLCipherは特定のパスワードからキーを導出するためにPBKDF2(反復= 4k、私は500を使用しています)も使用しているので、私はただ疑問に思っています。結局のところ、AESを使用した暗号化について話しているのではなく、キーを取得する際の違いについてのみ話しているのです。

もちろん、SQLCipherが自作のキー派生関数よりもはるかに高速であることは正当なようですが、SCLCipherのPBKDF2は実際に瞬時に動作するため、これほど大きな違いになるとは思いませんでした。

ご挨拶!

0 投票する
1 に答える
103 参照

php - hash_pbkdf2 は出力を与えません

PHPコードを書いていますが、必要な出力が得られません。

ハッシュの前にunhashpassまたはsaltのechoステートメントを配置すると機能しますが、何もしないと、phpスクリプト全体で白い画面が表示されます。誰かが私を助けることができます:)?

乾杯

0 投票する
3 に答える
5872 参照

cryptography - PBKDF2-HMAC-SHA-512テストベクター

PBKDF2-HMAC-SHA-512の公開されたテストベクターを見つけることができませんでした。RFC 4231の7つのHMAC-SHA-512テストベクトルと、このスレッドにあるPBKDF2-HMAC-SHA-256の32バイトのテストベクトルを(ついに!)再現する関数を作成しました。

これがPBKDF2-HMAC-SHA-512に対して生成されるものです。誰かがこの出力を確認するのを手伝ってもらえますか?
ありがとう、フレッド