2017-04-10 9 views
1

私は暗号化に関するいくつかの研究を行い、それがどのように機能し、どのように構成されているかを知っていますが、パスワード暗号化の実装方法を完全に理解しています。cordova password encryption

私のデータベースに送信されているパスワードを暗号化しようとしていますが、どうすればいいですか?私は、 をハッシュテーブルを見て持っていた提供情報君たちへ

おかげで、私はハッシュテーブルを想定した中で修正しています基本的には、たとえば異なる値に値を変換します

VARハッシュテーブル= { 1:[1,10,5]、2:[2]、3:[3,30,300]}

新しい値をデータベースに渡しますか?

ご協力いただきありがとうございます。

+1

最初に最も重要なのは、パスワードを決して*暗号化するべきではないということです。*ハッシュ*する必要があります。違いは、暗号化は*解読する方法を持っていることを意味しますが、入力を比較して一致するかどうかだけを判断することができます。 – IMSoP

+1

**パスワードを暗号化しない**、攻撃者がDBを取得したときにも暗号化キーを取得します。約100msの間、ランダムな塩でHMACを繰り返し、塩をハッシュで保存します。 'password_hash'、' PBKDF2'、 'Bcrypt'などの関数を使用してください。要点は、攻撃者が無差別にパスワードを見つけるのに多くの時間を費やすことです。 – zaph

+0

説明のおかげで、私はそれを感謝します、私はハッシングとそれを実装する方法を見つけることができます= D –

答えて

0

パスワードを暗号化しないでください。攻撃者がDBを取得すると、暗号化キーも取得されます。

ハッシュ関数を使用するだけでは不十分です。ちょうど塩を追加するだけでセキュリティを向上させることはほとんどありません。代わりに、約100msの持続時間の間、ランダムな塩でHMACを繰り返し、塩をハッシュで保存してください。 PBKDF2,Rfc2898DeriveBytes,password_hash,Bcryptなどの機能を使用してください。要点は、攻撃者が無差別にパスワードを見つけるのに多くの時間を費やすことです。

Cryptographic hash functionsは、その出力をランダムビット/バイトから区別することはできません。入力の1ビット変化は本質的に50%または出力ビットの変化を引き起こし、可逆的ではありません。

+0

ありがとうザフは本当に助けに感謝します。 –