ハッシュするときにcrypt()アルゴリズムが使用するアルゴリズムがわかりません。私はPHPのマニュアルを見ましたが、利用可能なものは何でも使用しています。しかしどのように使用するのか、使用するのかをどのように使用するのかをどのように知るのですか?私は現在開発環境としてMAMPを使用していますが、PHPのステートメントで見つかる方法があるはずです。あなたのマシンでどのアルゴリズムcrypt()が使われているか調べるには?
答えて
ソルト文字列の一部としてアルゴリズムを指定します。たとえば、$2a$
で始まると、Blowfishのサイファーが得られます。マシンが使用しようとしているアルゴリズムをサポートしていない場合、意味のある結果は得られません。 CRYPT_BLOWFISH
のような定義済みの定数のいくつかをチェックすることで、どのアルゴリズムがサポートされているかを事前に調べることができますが、少なくともPHP 5.2では定数CRYPT_SHA256
とCRYPT_SHA512
が常に定義されているわけではありません。 PHP 5.3以降、PHPには独自のアルゴリズムが実装されているため、PHP 5.2以前と同様に、コンパイル時にシステムが使用できるものであるかどうかは関係ありません。 PHP 5.2用のSuhosinパッチは少なくともBlowfishを追加すると思われますが、その実装はPHP 5.3で使用されているものと互換性がないようです。 - アルファベットから2文字のsalt と標準DESベースのハッシュ」
- CRYPT_STD_DES:
PHP docs for the
crypt()
functionは、使用するアルゴリズムを指定するには、塩の文字列を使用する方法についていくつかの情報を提供してください。/0-9A-Za-z」となる。塩で無効な文字を使用すると、crypt()が失敗します。- CRYPT_EXT_DES - 拡張DESベースの ハッシュ。 「塩」は、アンダースコアが で、その後に4バイトの反復カウントと4バイトの塩が続く9文字の文字列です。これらは、 が印刷可能な文字としてエンコードされています。文字あたり6ビットです。最初に有効文字は です。値0〜63は、 "./0-9A-Za-z"としてエンコードされています。塩に無効な文字を使用すると、crypt() が失敗します。
- CRYPT_MD5 - $ 1 $
- CRYPT_BLOWFISHで始まる12文字塩 とMD5ハッシュ - として塩とフグハッシングは、次のとおりです。 "$ 2aは$"、2桁のコストパラメータを、 "$"、および22桁 からアルファベット "./0-9A-Za-z"。 でこの範囲外の文字を使用すると、crypt()はゼロ長の文字列を返すようになります。 2つの 数値コストパラメータは、基礎となるBlowfishベースのハッシングアルゴリズムの反復回数 のベース2の対数であり、 の範囲04-31でなければなりません。この範囲を超えるとcrypt()が失敗します。
- CRYPT_SHA256 - $ 5 $で接頭辞が の16文字のSHA-256ハッシュです。ソルト文字列が 'rounds = $'で始まる場合、 の値Nは、ブッシュフィッシュのコストパラメータと同様に、ハッシュループが実行されるべき回数を示すために使用されます( )。デフォルトの ラウンド数は5000、最小値は1000、最大値は 999,999,999です。この範囲外のNの選択は、 を最も近い制限に切り捨てられます。
- CRYPT_SHA512 - $ 12 $の接頭辞を持つ 文字の塩が16のSHA-512ハッシュ。ソルト文字列が の 'rounds = $'で始まる場合、Nの数値は、Blowfishのパラメータ パラメータと同様に、ハッシュループを実行する必要がある回数を示すために使用されます( )。デフォルトのラウンド数は5000で、 は最小値で、最大値は999,999,999です。この範囲外のN の選択は、最も近い制限に切り捨てられます。だから、
は、XA86
で始まる文字列は塩でどこに
crypt('password', '$2a$10$XA86t7EJ0xD9OYEUbnTulT');
を使用することができ、あなたは2^10回の反復でフグを使用してハッシュ文字列「パスワード」をすることを指定します。
最後に、さらに多くの例が必要な場合や、このパスワード互換ビジネスのすべてを世話したい場合は、phpassをご覧ください。パブリックドメインであり、私の経験でうまく動作します。複数のシステムと互換性のあるハッシュを指定する場合を除いて、自動的にシステム上で「最適な」アルゴリズムが使用されます。この場合、MD5が使用されます。
- 1. アルゴリズム - 番号がすでにリストにあるかどうかを調べる
- 2. ジェネリック型の配列がMaxHeapであるかどうかを調べるアルゴリズム
- 3. フレーズがどれくらいの頻度でFacebookに使われているかを調べる
- 4. Androidで通知が行われたかどうか調べるには?
- 5. あなたが使っているrubygemを調べる
- 6. gitを使わずにディレクトリが有効なgitディレクトリであるかどうかを調べるには?
- 7. アルゴリズム - あるサイズの対角線が行列内に同じ値であるかどうかを調べる
- 8. ネットワーク上のアクティブなすべてのマシンのIPを調べる
- 9. LLVM:どのタイプが使用されているかを調べるには?
- 10. どの設定ファイルが使用されているかを調べるには
- 11. どのdrawbleリソースが使用されているか調べるには?
- 12. アナグラムがパリンドロームかどうかを調べる最良のアルゴリズムは何ですか?
- 13. どのPHPファイルコードからコードを調べているのか調べるには?
- 14. argvがcharで終わるかどうかを調べるにはどうすればいいですか?
- 15. インストールされているアプリケーションがx64であるかどうかを調べる
- 16. IPが使用されているかどうかを調べるには?
- 17. gitでファイルがあるブランチからどのブランチに変わったかを調べる方法は?
- 18. シートが空であるかどうかを調べるには?
- 19. WPFアプリケーションでフォーカスがどこにあるのかを調べるにはどうすればいいですか?
- 20. MSbotframeworkはどのプラットフォームが使用されているかを調べる
- 21. オブジェクトがクラスのインスタンスではなくクラスオブジェクトであるかどうか調べる
- 22. どのSMSが配信されていないか、または送信されていないか調べるにはどうすればよいですか?
- 23. iPhone:アプリケーションがバックグラウンドでどこにあるのかを調べる
- 24. どのようなフォームが上にあるのか調べるには?
- 25. PhpStormがどのGitバージョンを使用しているのか調べるには?
- 26. あなたのPythonインタープリタがどこにあるのかをどうやって調べますか?
- 27. sshfsのマウントされたディレクトリが切断されていないかどうかを調べるには?
- 28. カメラが使用中であるかどうかを調べるには?
- 29. divにスクロールバーがあるかどうかを調べるには
- 30. 整数が0で終わるかどうかを調べる
どの塩形を使用していますか? – CodesInChaos
もしそれがあなたが求めているものなら、塩を提供する。 – Andy
私が正しく覚えていれば、塩のフォーマットによってアルゴリズムチェックが決定されます。http://php.net/manual/en/function.crypt.php – CodesInChaos