1

重複の可能性:
hash()関数とcrypt()関数の比較

最近、PHPでパスワードハッシュを適切に行う方法を研究しました。より良いオプションの1つは、を使用することcrypt()です。しかし、なぜ私たちは使用しないのhash()ですか?

私がこれを求めている主な理由は、ラップするパスワードハッシュ関数を作成し、crypt()関数に何という名前を付けるのか疑問に思っているためです。現在、名前はgetHash()です。でも、ラッピングしているので、その名前を使って面白いと思いますcrypt()。私が使用getCrypt()した場合、それはハッシュ関数であることが意図されているため、どちらも素晴らしい音ではありません。ラップするハッシュ関数には何という名前を付ける必要がありcrypt()ますか?

4

2 に答える 2

3

で使用されるハッシュはhash、通常はチェックサムのようなものとして、データ(ファイルなど)を検証することを目的としています。高速であるため、安全なデータには使用しません。

Crypt(正しく使用されている場合)は、低速のハッシュアルゴリズムを使用します。遅いハッシュアルゴリズムが重要である理由は、誰かがハッシュをブルートフォースするのを難しくするからです。低速ハッシュアルゴリズムが高速ハッシュアルゴリズムよりも0.1ミリ秒長くかかる場合、10000個のパスワードの試行には1秒かかります。もちろん、ブルートフォースには数百万回の試行が必要になります。

于 2012-08-18T04:58:49.030 に答える
0

私たちが最終的にここで得ているのは、hash()が比較的高速であるのに対し、一部の暗号は低速になるように設計されていることだと思います。アルゴリズムが遅いほど、ハッカーはパスワードをブルートフォース攻撃する可能性があります。悲しいことに、遅い方が良いです...ある程度まで:)

于 2012-08-18T04:57:47.497 に答える