-1

私はWebプロジェクトのphp/mysqlログインシステムに取り組んでいます。SOとウェブ上の多くの記事を調べた後、私は基本的なフレームワークを考え出し、そのためのコードを書き始めました。しかし、私はパスワード暗号化で少し行き詰まりました。

読む価値のある夜の後、私はそれを発見しました:

  • ユーザーのパスワードは少なくともsha1またはsha2である必要があります
  • また、ランダムに生成されたソルト(これは私が助けを必要としているものです)を使用し、暗号化する前にパスワードに追加する必要があります
  • ハッシュ化されたパスワードとランダムに生成されたソルトはデータベースに保存され、クエリされ、結合/暗号化されてから、ユーザーのハッシュ化されたパスワードと照合されます。

私の問題は、塩をランダムに生成することです。

4

2 に答える 2

0

uniqid()?

http://sg2.php.net/uniqid

于 2012-03-15T09:50:56.550 に答える
0

私が考えることができる可能性:

  • ループ内でmt_rand()を使用してASCIIコードを選択し、chr()で対応する文字を取得し、 saltに連結します。

    これにより、任意の長さの塩を作成できます。

  • 使用可能な文字で文字列を定義し、ループ内でmt_rand()を使用してランダムな位置を選択し、substr()またはmb_substr()を使用して選択した位置の文字を抽出し、saltに連結します。

    これにより、選択した文字セットと長さのソルトを作成できます。

  • ランダムな文字列を生成する組み込み関数(例:uniqid())を使用し、オプションでハッシュします。

    これは迅速かつ簡単です。

私は通常、2番目のオプションを使用します。

于 2012-03-15T10:01:41.903 に答える