1

私は開発用のクラスを構築しており、暗号化クラスに取り組んでいます。私はphpの暗号化機能とさまざまな暗号化タイプについて読んでいますが、いくつかの領域が漠然と説明されています。

私の理解ではCRYPT_STD_DES、これらの暗号化オプション、、、、、、およびがあります。それらが有効になっているかどうかを確認するには、チェックするだけですCRYPT_EXT_DESCRYPT_MD5CRYPT_BLOWFISHCRYPT_SHA256CRYPT_SHA512

if(CRYPT_FOO==1)
{
   //is enabled
}

質問

以外の異なる暗号化のソルト要件/フォーマットは何ですか。 SOにあるフグの要件。

明確にするために、フグの塩を使用するとcrypt()、フグの暗号化が自動的に行われると思いますか?

4

1 に答える 1

3

関数公式ドキュメントにはcrypt、さまざまなモードに関するかなりの情報があり、それらのsaltパラメーターとして何を渡す必要がありますか。

  • CRYPT_STD_DES:アルファベットからの2文字のソルト./0-9A-Za-z、つまり12ビットのソルト。
  • CRYPT_EXT_DES_文字、次に4文字の反復カウント、次に4文字のソルト(それぞれ同じアルファベットを使用)。
  • CRYPT_MD5:マーカー$1$、さらに9つのソルト文字(上記と同じアルファベットを使用していると思います)。
  • CRYPT_BLOWFISH:マーカー、次に04から31$2a$の範囲の2桁のコストパラメーター(2 4から231回の反復を意味する)、次に22桁のソルト(ここでも上記と同じアルファベットを使用)。$
  • CRYPT_SHA256:マーカー、数字$5$のオプションのラウンドパラメーター表示(1000から999999999までの10進数)、および16文字のソルト(上記と同じアルファベットを使用)。rounds=$
  • CRYPT_SHA512:マーカー、数字$6$のオプションのラウンドパラメーター表示(1000から999999999までの10進数)、および16文字のソルト(上記と同じアルファベットを使用)。rounds=$

saltパラメータの先頭は、ここで使用するパスワードハッシュアルゴリズムの種類を一意に識別します。したがって、bcrypt形式($ 2a $で始まる)でsaltを使用すると、自動的にbcryptが使用されます。

于 2012-04-15T12:42:44.953 に答える