Maison interface Web js tutoriel Utilisation du cryptage de mot de passe bcryptjs dans Express

Utilisation du cryptage de mot de passe bcryptjs dans Express

Jun 07, 2018 pm 01:38 PM
express 密码加密

Cet article présente principalement la méthode d'utilisation de bcryptjs pour le cryptage des mots de passe sous Express. Maintenant, je le partage avec vous et le donne comme référence.

Il y a quelques jours, j'ai développé un petit projet utilisant Express. Lors du développement du module de connexion et d'enregistrement, bcryptjs a été utilisé pour le cryptage des mots de passe :

bcrypt est un cross-. outil de cryptage de fichiers de plate-forme. Les fichiers cryptés par celui-ci peuvent être transférés sur tous les systèmes d'exploitation et processeurs pris en charge. Son mot de passe doit être compris entre 8 et 56 caractères et sera converti en interne en clé de 448 bits.

En plus de chiffrer vos données, bcrypt écrasera par défaut le fichier d'entrée d'origine trois fois avec des données aléatoires avant de le supprimer, pour contrecarrer les tentatives de récupération par quelqu'un qui pourrait accéder aux données de votre ordinateur. Si vous ne souhaitez pas utiliser cette fonctionnalité, vous pouvez la désactiver.

bcrypt utilise l'algorithme de cryptage Blowfish publié par Bruce Schnell en 1993. Plus précisément, bcrypt est implémenté à l'aide de l'algorithme de Paul Kircher. Le code source distribué avec bcrypt est légèrement modifié par rapport à la version originale.

Étapes d'utilisation de bcryptjs sous Express :

1 Installez le module bcryptjs

npm install bcryptjs --save
Copier après la connexion

2. Introduisez la bibliothèque bcryptjs dans le module qui. nécessite un cryptage

var bcrypt = require('bcryptjs');
Copier après la connexion

3. Définissez la force de cryptage

var salt = bcrypt.genSaltSync(10);
Copier après la connexion

4. Générez la valeur HASH lors de l'enregistrement et insérez-la dans la base de données

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();
    });
  });
});
Copier après la connexion

5. lors de la connexion et insérez-le dans la base de données

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();
    });
  });
});
Copier après la connexion

Ce qui précède utilise l'utilisation synchrone de bcryptjs. L'utilisation asynchrone est présentée ci-dessous :

Générer un mot de passe de hachage :

bcrypt.genSalt(10, function(err, salt) {
  bcrypt.hash("B4c0/\/", salt, function(err, hash) {
    // Store hash in your password DB.
  });
});
Copier après la connexion
.

Vérification du mot de passe :

bcrypt.compare("B4c0/\/", hash).then((res) => {
  // res === true
});
Copier après la connexion

Ce qui suit est un exemple simple d'utilisation de Bcrypt pour crypter des données :

var mongoose = require('mongoose');
// 引入bcrypt模块
var bcrypt = require('bcrypt');
// 定义加密密码计算强度
var SALT_WORK_FACTOR = 10;

// 连接数据库
mongoose.connect('mongodb://localhost:27017/test')

// 定义用户模式
var UserSchema = new mongoose.Schema({
  name: {
    unique: true,
    type: String
  },
  password: {
    unique: true,
    type: String
  }
},{ collection: "user"});

// 使用pre中间件在用户信息存储前进行密码加密
UserSchema.pre('save', function(next){
  var user = this;

  // 进行加密(加盐)
  bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt){
    if(err){
      return next(err);
    }
    bcrypt.hash(user.password, salt, function(err, hash){
      if(err){
        return next(err);
      }
      user.password = hash;
      next();
    })
  });
});

// 编译模型
var UserBox = mongoose.model('UserBox', UserSchema);

// 创建文档对象实例
var user = new UserBox ({
  name : "Jack" ,
  password : "123456"
});

// 保存用户信息
user.save(function(err, user){
  if(err){
    console.log(err);
  }else{
    // 如果保存成功,打印用户密码
    console.log("password: " + user.password);
  }
})
Copier après la connexion

Ce qui précède est ce que j'ai compilé pour tout le monde, j'espère que ce sera le cas. être utile à tout le monde à l’avenir.

Articles connexes :

Classe de cache encapsulée implémentée via Redis en tant que cache dans nodejs

Utilisation de JavaScript natif pour obtenir l'effet de loupe

Analyse détaillée du code source de Vue Socket.io

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser Express pour gérer le téléchargement de fichiers dans un projet de nœud Comment utiliser Express pour gérer le téléchargement de fichiers dans un projet de nœud Mar 28, 2023 pm 07:28 PM

Comment gérer le téléchargement de fichiers ? L'article suivant vous expliquera comment utiliser Express pour gérer les téléchargements de fichiers dans le projet de nœud. J'espère qu'il vous sera utile !

Cryptage du mot de passe PHP et méthode de stockage sécurisée ? Cryptage du mot de passe PHP et méthode de stockage sécurisée ? Jun 30, 2023 am 08:34 AM

Comment gérer le cryptage des mots de passe et le stockage sécurisé en PHP ? Avec le développement rapide d’Internet, la protection de la vie privée des utilisateurs et la sécurité des données sont devenues un enjeu important. Il est crucial pour les développeurs de sites Web et d’applications de sécuriser les mots de passe des utilisateurs. Dans le langage PHP, il existe de nombreuses façons de gérer le cryptage et le stockage sécurisé des mots de passe. Cet article présentera certaines technologies courantes et bonnes pratiques pour aider les développeurs à renforcer la sécurité des mots de passe des utilisateurs. Cryptage de mot de passe à l'aide des fonctions de hachage Lors du stockage de mots de passe, ils ne doivent jamais être stockés en texte clair ;

Comparaison approfondie d'Express et de Laravel : Comment choisir le meilleur framework ? Comparaison approfondie d'Express et de Laravel : Comment choisir le meilleur framework ? Mar 09, 2024 pm 01:33 PM

Comparaison approfondie d'Express et de Laravel : Comment choisir le meilleur framework ? Lorsque vous choisissez un framework back-end adapté à votre projet, Express et Laravel sont sans aucun doute deux choix populaires parmi les développeurs. Express est un framework léger basé sur Node.js, tandis que Laravel est un framework populaire basé sur PHP. Cet article fournira une comparaison approfondie des avantages et des inconvénients de ces deux frameworks et fournira des exemples de code spécifiques pour aider les développeurs à choisir le framework qui correspond le mieux à leurs besoins. Performances et évolutivitéExpr

Analyse comparative d'Express et Laravel : Choisissez le framework qui vous convient le mieux Analyse comparative d'Express et Laravel : Choisissez le framework qui vous convient le mieux Mar 10, 2024 pm 10:15 PM

Express et Laravel sont deux frameworks web très populaires, représentant respectivement les excellents frameworks des deux principaux langages de développement JavaScript et PHP. Cet article procédera à une analyse comparative de ces deux frameworks pour aider les développeurs à choisir un framework plus adapté aux besoins de leur projet. 1. Introduction au framework Express est un framework d'application Web basé sur la plateforme Node.js. Il fournit une série de fonctions et d'outils puissants qui permettent aux développeurs de créer rapidement des applications Web hautes performances. Exprimer

Comment utiliser PHP pour implémenter la fonction de cryptage des mots de passe Comment utiliser PHP pour implémenter la fonction de cryptage des mots de passe Aug 19, 2023 am 09:16 AM

Comment utiliser PHP pour implémenter la fonction de cryptage des mots de passe Le mot de passe est une méthode de vérification de sécurité que nous devons souvent utiliser dans la vie et au travail. Afin de protéger la vie privée des utilisateurs, nous devons crypter et stocker les mots de passe des utilisateurs pour éviter qu'ils ne soient volés et abusés par des criminels. Cet article explique comment utiliser PHP pour implémenter la fonction de cryptage des mots de passe afin d'augmenter la sécurité des mots de passe des utilisateurs. En PHP, il existe une fonction de cryptage très puissante password_hash() qui peut être utilisée pour générer une valeur de hachage d'un mot de passe. Cette fonction peut accepter deux paramètres : un mot de passe en texte brut et un

PHP et SQLite : Comment implémenter le cryptage et la vérification des mots de passe PHP et SQLite : Comment implémenter le cryptage et la vérification des mots de passe Jul 29, 2023 am 10:17 AM

PHP et SQLite : Comment implémenter le cryptage et la vérification des mots de passe Introduction : À l'ère d'Internet moderne, la sécurité des mots de passe des utilisateurs est particulièrement importante. Afin de protéger la vie privée des utilisateurs, les sites Web utilisent généralement des méthodes de cryptage et de vérification des mots de passe pour stocker et traiter les informations relatives aux mots de passe des utilisateurs. Cet article explique comment utiliser les bases de données PHP et SQLite pour implémenter les fonctions de cryptage et de vérification des mots de passe. 1. Cryptage du mot de passe Le cryptage du mot de passe fait référence à la conversion du mot de passe en clair de l'utilisateur en une chaîne aléatoire apparemment illisible. Grâce à ce processus de conversion, même en cas de fuite de la base de données.

Analyse approfondie de la méthode de cryptage des mots de passe MySQL Analyse approfondie de la méthode de cryptage des mots de passe MySQL Jun 15, 2023 pm 09:24 PM

Avec le développement d'Internet, MySQL, en tant que système de gestion de bases de données relationnelles open source, est largement utilisé dans diverses applications. L'un des problèmes de sécurité importants est le cryptage et le stockage des mots de passe des utilisateurs MySQL. Alors, quelles sont les méthodes de cryptage des mots de passe MySQL ? Cet article vous donnera une analyse approfondie. Comment les mots de passe MySQL sont stockés Avant de comprendre la méthode de cryptage des mots de passe MySQL, comprenons d'abord comment les mots de passe MySQL sont stockés. Avant MySQL version 5.7, l'algorithme de hachage unidirectionnel (S

Comment développer un système fiable de cryptage et de décryptage de mots de passe à l'aide de PHP et Vue.js Comment développer un système fiable de cryptage et de décryptage de mots de passe à l'aide de PHP et Vue.js Jul 05, 2023 pm 08:53 PM

Comment développer un système fiable de cryptage et de déchiffrement de mots de passe à l'aide de PHP et Vue.js Introduction : Dans le monde en ligne, la sécurité des mots de passe est particulièrement importante. Afin de protéger la confidentialité et la sécurité des utilisateurs, nous devons utiliser un système fiable de cryptage et de décryptage des mots de passe. Dans cet article, nous présenterons comment développer un système fiable de cryptage et de déchiffrement de mots de passe à l'aide de PHP et Vue.js, avec des exemples de code. 1. Comprendre les principes de cryptage et de déchiffrement des mots de passe. Avant de commencer le développement, nous devons comprendre les principes de cryptage et de déchiffrement des mots de passe. En général, nous utilisons des hachages

See all articles