0

ログインと登録ページを作りました。しかし、私のパスワードはまだ暗号化されていません。人々は、それは悪い考えであり、暗号化する必要があると私に言いました。そのため、パスワードを暗号化および復号化する方法を探し回っています。パスワードを暗号化する方法の例を見つけましたが、ログイン ページで再度復号化する方法がわかりません。ここに私の暗号化コードがあります:

$key = "some random security key";
$input = $password;

$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$password = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);

私の質問は次のとおりです。上記のコードから取得した文字列を解読するために必要なコードを教えてください。

4

3 に答える 3

0

これがどのように機能するかについて少し混乱しているようです。この記事を読むと、暗号化、復号化、ハッシュ化、およびログイン システムでのそれらの使用についてすべて理解できるようになります。 http://net.tutsplus.com/tutorials/php/understanding-hash-functions-and-keeping-passwords-safe/

したがって、基本的には、登録時にパスワードを 16 進数の文字列にハッシュし、データベースに保存します。ユーザーがログインするたびに、現在の i/p パスワードを取得し、それをハッシュして $temp などの変数に保存します。

ここで、元のパスワードのハッシュをサーバーから取得し、2 つのハッシュを単純に比較します。

...それらが同じ場合、アクセスが許可されます!

パスワードの暗号化と復号化を続けたくない多くの理由は次のとおりです。

  • サーバーに渡されるとき、ユーザーが入力したパスワードはプレーンテキストであるか、簡単に盗まれたり盗聴されたりする可能性があります。
  • サーバーは、論理比較を行うだけのハッシュとは対照的に、必要なたびにデータベースに保存されているパスワードを復号化するプロセスを計算する必要があります。
  • 暗号化アルゴリズムを含むファイルがデータベースとともに危険にさらされると、すべてのパスワードがプレーン テキストで失われます。ユーザーが複数のサイトで同じパスワードを使用する可能性があるため、脅威が拡大します。
于 2012-06-06T13:15:06.760 に答える