ホームページ  >  記事  >  ウェブフロントエンド  >  Express での bcryptjs パスワード暗号化の使用

Express での bcryptjs パスワード暗号化の使用

亚连
亚连オリジナル
2018-06-07 13:38:082079ブラウズ

この記事では、Express でのパスワード暗号化に bcryptjs を使用する方法を主に紹介し、参考として提供します。

数日前、Express を使用して小さなプロジェクトを開発しました。ログインおよび登録モジュールを開発する際、パスワード暗号化に bcryptjs が使用されました。内容を要約すると、

bcrypt はクロスプラットフォームのファイル暗号化ツールです。これによって暗号化されたファイルは、サポートされているすべてのオペレーティング システムおよびプロセッサ上で転送できます。パスワードは 8 ~ 56 文字である必要があり、内部で 448 ビットのキーに変換されます。

データの暗号化に加えて、デフォルトでは、bcrypt は元の入力ファイルを削除する前にランダムなデータで 3 回上書きし、コンピューターのデータにアクセスする可能性のある誰かによるファイルの回復の試みを阻止します。この機能を使用したくない場合は、無効にすることができます。

bcrypt は、1993 年に Bruce Schnell によってリリースされた Blowfish 暗号化アルゴリズムを使用します。具体的には、bcrypt は Paul Kircher のアルゴリズムを使用して実装されています。 bcrypt で配布されるソース コードは、オリジナル バージョンからわずかに変更されています。

Express で bcryptjs を使用する手順:

1. bcryptjs モジュールをインストールします

npm install bcryptjs --save

2. 暗号化の強度を設定します

var bcrypt = require('bcryptjs');

4.登録時に HASH 値を確認し、データベースに挿入します

var salt = bcrypt.genSaltSync(10);

5. ログイン時に HASH 値を確認し、データベースに挿入します

router.post('/register', function(req, res, next){
  // 从连接池获取连接
  pool.getConnection(function(err, connection) {
    // 获取前台页面传过来的参数
    var param = req.query || req.params;
    /*生成HASH值*/
    var hash = bcrypt.hashSync(param.pwd,salt);
    // 建立连接 新增用户
    connection.query(userSQL.insert, ["",hash,param.phone,"","","",0], function(err, result) {
      res.send(result);
      // 释放连接
      connection.release();
    });
  });
});

上記は bcryptjs の同期的な使用方法を以下に紹介します。

ハッシュ パスワードの生成:

router.post('/login', function(req, res, next){
  // 从连接池获取连接
  pool.getConnection(function(err, connection) {
    // 获取前台页面传过来的参数
    var param = req.query || req.params;
    // 建立连接 根据手机号查找密码
    connection.query(userSQL.getPwdByPhoneNumber, [param.phone], function(err, result) {
      if(bcrypt.compareSync(param.pwd,result[0].password)){
        res.send("1");
        connection.query(userSQL.updateLoginStatusById, [1,result[0].id], function(err, result) {
        });
      }else{
        res.send("0");
      }
      // 释放连接
      connection.release();
    });
  });
});

パスワードの検証:

bcrypt.genSalt(10, function(err, salt) {
  bcrypt.hash("B4c0/\/", salt, function(err, hash) {
    // Store hash in your password DB.
  });
});

以下は、Bcrypt を使用してデータを暗号化する簡単な例です。 。

関連記事:

nodejsのキャッシュとしてredisを介して実装されたカプセル化されたキャッシュクラス

ネイティブJavaScriptを使用して虫眼鏡効果を実現

Vue Socket.ioソースコードの詳細な分析

以上がExpress での bcryptjs パスワード暗号化の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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