この記事では、主に NodeJS で不可逆暗号化とパスワード暗号文ストレージを実装する方法を紹介し、不可逆暗号化とパスワード暗号文ストレージの原理を簡単に説明し、必要な場合は例の形式で NodeJS 関連の暗号化操作の実装テクニックを分析します。参照してください。
この記事の例では、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 サーバーとデータベースが最初に崩壊する可能性があるからです。
上記は私があなたのためにまとめたものです。
関連記事:
vue親コンポーネントが子コンポーネントのメソッドとイベントを呼び出す
以上がNodeJS で不可逆暗号化を実装し、パスワード暗号文を保存する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。