ホームページ  >  記事  >  ウェブフロントエンド  >  NodeJS は不可逆的な暗号化とパスワード保存を実装します

NodeJS は不可逆的な暗号化とパスワード保存を実装します

小云云
小云云オリジナル
2018-03-19 09:26:121798ブラウズ

アプリケーションでは、ユーザーのパスワードを暗号化して保存する必要があることがよくあります。 パスワードを平文で保存することには欠点があります: 一度漏洩すると、簡単に多大な損失を引き起こす可能性があり、また、他の Web サイトのユーザーとパスワードに損失が生じる可能性もあります (ほとんどの Web サイトでほとんどのユーザーが同じアカウントとパスワードを使用しているため)。

この漏洩は 2 つの側面から発生している可能性があります。ハッカーと運用保守担当者の窃盗です。

パスワード平文の漏洩を防ぐために、データベースに保存されているパスワードフィールドを不可逆的に暗号化する必要があります。正確には、暗号化されてデータベースに保存されます。

一般的に使用される不可逆暗号化アルゴリズムには、MD5SHA-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 サーバーとデータベースが最初に崩壊する可能性があるからです。

関連する推奨事項:

javascript - 一部の Web サイトでは、ユーザーがログインを送信するときにパスワード ボックスのパスワードを js で不可逆的に暗号化し、送信します。これは必要ですか?メリットとデメリットは何ですか?

ユーザーパスワードの保存と検証のセキュリティを強化する_PHPチュートリアル

ユーザーlogin_jqueryのパスワードを保存する機能を実装するjquery.cookie.jsメソッド

以上がNodeJS は不可逆的な暗号化とパスワード保存を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。