ホームページ > 記事 > ウェブフロントエンド > NodeJS は不可逆的な暗号化とパスワード保存を実装します
アプリケーションでは、ユーザーのパスワードを暗号化して保存する必要があることがよくあります。 パスワードを平文で保存することには欠点があります: 一度漏洩すると、簡単に多大な損失を引き起こす可能性があり、また、他の Web サイトのユーザーとパスワードに損失が生じる可能性もあります (ほとんどの Web サイトでほとんどのユーザーが同じアカウントとパスワードを使用しているため)。
この漏洩は 2 つの側面から発生している可能性があります。ハッカーと運用保守担当者の窃盗です。
パスワード平文の漏洩を防ぐために、データベースに保存されているパスワードフィールドを不可逆的に暗号化する必要があります。正確には、暗号化されてデータベースに保存されます。
一般的に使用される不可逆暗号化アルゴリズムには、MD5 や SHA-1 などがあります。
NodeJS では、非常に使いやすく、公式の組み込み crypto
パッケージを使用するだけです:
var clearText = '123456'; // MD5 Hash require('crypto').createHash('md5').update(clearText).digest('hex'); // 'e10adc3949ba59abbe56e057f20f883e' // SHA-1 Hash require('crypto').createHash('sha1').update(clearText).digest('hex'); // '7c4a8d09ca3762af61e59520943dc26494f8941b'
ユーザーが登録すると、ユーザーが送信したパスワードは最初に不可逆的に暗号化され、次に暗号文が暗号化されます。データベース内に保存されます。
ユーザーがログインすると、ユーザーが送信したパスワードは最初に同じ方法で暗号化され、データベース内の暗号文と比較されて、パスワードが正しいか間違っているかが判断されます。
理論的には、同じハッシュ値に対応するパスワードは無数にありますが、攻撃されるリスクについてはあまり心配する必要はありません。それに比べて、フラッド攻撃では Web サーバーとデータベースが最初に崩壊する可能性があるからです。
関連する推奨事項:
ユーザーパスワードの保存と検証のセキュリティを強化する_PHPチュートリアル
ユーザーlogin_jqueryのパスワードを保存する機能を実装するjquery.cookie.jsメソッド
以上がNodeJS は不可逆的な暗号化とパスワード保存を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。