[解決済み] パスワードのハッシュ化と暗号化の違いについて
質問
現在の上位投票先 この質問 の状態です。
もうひとつは、セキュリティに関連することではありますが、セキュリティ問題というほどでもない、完全で忌々しい失敗です。 パスワードのハッシュ化と暗号化の違いを理解する。 . プログラマが安全でない "Remind me of my password" 機能を提供しようとしているコードで最もよく見受けられます。
この違いはいったい何なのでしょうか?ハッシュは暗号の一種というイメージがあるのですが。投稿者の言う安全でない機能とは何でしょうか?
解決方法は?
ハッシュ化は一方通行の関数(まあ、マッピング)です。不可逆的で、安全なハッシュアルゴリズムを適用しても、元の文字列を取り戻すことはできない。せいぜいできるのは、同じハッシュを提供する別の文字列を見つけるという、いわゆる「コリジョン(衝突)」を発生させることくらいです。暗号的に安全なハッシュアルゴリズムは、衝突の発生を防ぐように設計されています。安全なハッシュを攻撃する方法として レインボーテーブル を適用することで、対抗することができます。 ソルト を保存する前にハッシュを追加します。
暗号化は、ちゃんとした(双方向の)機能です。鍵があれば、暗号化された文字列を復号して元の文字列を得ることができる。
安全でない機能とは、パスワードを暗号化すると、アプリケーションがキーをどこかに保存してしまい、データベース(および/またはコード)にアクセスした攻撃者が、キーと暗号化されたテキストの両方を取得することで元のパスワードを取得できてしまうというものです。
通常、クラッカーがデータベースやコードを所有すれば、パスワードは必要ない、だからこの違いは無意味だ、と言われます。なぜなら、ユーザーの多くは同じパスワードを何度も使っており、パスワードが漏れることでより大きなリスクにさらされるからです。
関連
-
[解決済み] ClientとUser-Agentの違い
-
[解決済み] メソッドと関数の違いは何ですか?
-
[解決済み] 抽象メソッドと仮想メソッドの違いは何ですか?
-
[解決済み] 並行処理と並列処理の違いは何ですか?
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み] フレームワークとライブラリの違いは何ですか?
-
[解決済み] 引数とパラメータの違いは何ですか?
-
[解決済み] ハッシュ化アルゴリズムと暗号化アルゴリズムの根本的な違い
-
[解決済み] ブラウザの「パスワードの保存」機能を無効にする
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】攻撃者はinspect要素を有害に使用することができるか?
-
[解決済み] 正規のコードに0x90(NOP)シーケンスが含まれる場合
-
[解決済み] ClientとUser-Agentの違い
-
[解決済み] CloudflareでオリジンIPアドレスの公開を防ぐには?
-
Linuxセキュリティの基礎
-
[解決済み] SHA-256で暗号化された文字列を復号化する方法は?
-
[解決済み] 認証と認可
-
[解決済み] JWT(JSONウェブトークン)の有効期限を自動的に延長する機能
-
[解決済み] SSOはCASかOAuthか?
-
[解決済み] パスワードを(平文ではなく)環境変数として設定ファイルに保存することは安全ですか?