sql >> データベース >  >> RDS >> Mysql

MySQLでパスワードをハッシュするために使用する関数は何ですか?

    MD5を使用すべきではないということは必ずしも必要ではありません。それは、ただを使用すべきではないということです。 MD5、これによりレインボーテーブル攻撃に対して脆弱になります(レインボーテーブルは事前に計算されたハッシュ値のテーブルです-パスワードがリモートで一般的または単純な場合でも、攻撃者はハッシュを検索するだけで、プレーンテキストのパスワードを知っています。 )

    少なくとも、すべてのパスワードにソルトを追加して、既存のレインボーテーブルが役に立たないようにし、攻撃者がパスワードのデータベース専用にまったく新しいレインボーテーブルを生成するように強制する必要があります。

    さらに良いのは、データベース内のパスワードごとに異なるソルトを使用することです。たとえば、関連付けられているユーザー名を使用すると、攻撃者はデータベース全体のレインボーテーブルを生成することさえできず、各エントリを個別にクラックする必要があります。

    MD5も非常に高速なアルゴリズムです。クラッキングに関しては、速度が敵です。ハッシュの生成に時間がかかるほど、ハッカーが試行するたびに時間がかかります。毎回新しい追加のソルトでプレーンテキストを100回ハッシュするような単純なものは、サイトにログインしているユーザーにはほとんど認識されませんが、パスワードをブルートフォースするのにかかる時間が長くなります。 100回。

    はるかに詳細はこちら: http://www.codinghorror.com/blog/ archives / 000953.html



    1. インメモリデータベースとディスクメモリデータベースの違い

    2. DB_ID()を使用して、SQLServerのデータベースのIDを返します

    3. MicrosoftAccessのデータソースとしてテキストまたはExcelを開くまたはリンクする

    4. 最適なMySQL構成(my.cnf)