Heim Web-Frontend js-Tutorial Verwendung der bcryptjs-Passwortverschlüsselung in Express

Verwendung der bcryptjs-Passwortverschlüsselung in Express

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

In diesem Artikel wird hauptsächlich die Methode zur Verwendung von bcryptjs zur Passwortverschlüsselung unter Express vorgestellt. Jetzt teile ich sie mit Ihnen und gebe sie als Referenz.

Vor ein paar Tagen habe ich ein kleines Projekt mit Express entwickelt. Bei der Entwicklung des Anmelde- und Registrierungsmoduls wurde bcryptjs für die Passwortverschlüsselung verwendet:

bcrypt ist ein Cross-. Plattform-Dateiverschlüsselungstool. Damit verschlüsselte Dateien können auf allen unterstützten Betriebssystemen und Prozessoren übertragen werden. Sein Passwort muss zwischen 8 und 56 Zeichen lang sein und wird intern in einen 448-Bit-Schlüssel umgewandelt.

Zusätzlich zur Verschlüsselung Ihrer Daten überschreibt bcrypt standardmäßig die ursprüngliche Eingabedatei dreimal mit zufälligen Daten, bevor es sie löscht, um Wiederherstellungsversuche durch jemanden zu verhindern, der möglicherweise Zugriff auf Ihre Computerdaten erhält. Wenn Sie diese Funktion nicht nutzen möchten, können Sie sie deaktivieren.

bcrypt verwendet den 1993 von Bruce Schnell veröffentlichten Blowfish-Verschlüsselungsalgorithmus. Konkret wird bcrypt mit dem Algorithmus von Paul Kircher implementiert. Der mit bcrypt verteilte Quellcode ist gegenüber der Originalversion leicht verändert.

Schritte zur Verwendung von bcryptjs unter Express:

1. Installieren Sie das bcryptjs-Modul

npm install bcryptjs --save
Nach dem Login kopieren

2. Führen Sie die bcryptjs-Bibliothek in das Modul ein, das eine Verschlüsselung erfordert

var bcrypt = require('bcryptjs');
Nach dem Login kopieren

3. Verschlüsselungsstärke einstellen

var salt = bcrypt.genSaltSync(10);
Nach dem Login kopieren

4. HASH-Wert bei der Registrierung generieren und in die Datenbank einfügen

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();
    });
  });
});
Nach dem Login kopieren

5. HASH-Wert beim Anmelden überprüfen und in die Datenbank einfügen

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();
    });
  });
});
Nach dem Login kopieren

Das Obige verwendet die synchrone Verwendung von bcryptjs. Die asynchrone Verwendung wird unten vorgestellt:

Hash-Passwort generieren:

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

Passwortüberprüfung:

bcrypt.compare("B4c0/\/", hash).then((res) => {
  // res === true
});
Nach dem Login kopieren

The Im Folgenden finden Sie die Verwendung von Bcrypt zur Überprüfung der Daten. Ein einfaches Beispiel für die Verschlüsselung:

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);
  }
})
Nach dem Login kopieren

Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Gekapselte Cache-Klasse, implementiert über Redis als Cache in NodeJS

Verwendung von nativem JavaScript, um den Lupeneffekt zu erzielen

Detaillierte Analyse des Vue Socket.io-Quellcodes

Das obige ist der detaillierte Inhalt vonVerwendung der bcryptjs-Passwortverschlüsselung in Express. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Express für den Datei-Upload im Knotenprojekt So verwenden Sie Express für den Datei-Upload im Knotenprojekt Mar 28, 2023 pm 07:28 PM

Wie gehe ich mit dem Datei-Upload um? Der folgende Artikel stellt Ihnen vor, wie Sie Express zum Hochladen von Dateien im Knotenprojekt verwenden. Ich hoffe, er ist hilfreich für Sie!

PHP-Passwortverschlüsselung und sichere Speichermethode? PHP-Passwortverschlüsselung und sichere Speichermethode? Jun 30, 2023 am 08:34 AM

Wie gehe ich mit Passwortverschlüsselung und sicherer Speicherung in PHP um? Mit der rasanten Entwicklung des Internets sind der Schutz der Privatsphäre der Nutzer und die Datensicherheit zu einem wichtigen Thema geworden. Für Website- und App-Entwickler ist es von entscheidender Bedeutung, Benutzerkennwörter sicher aufzubewahren. In der PHP-Sprache gibt es viele Möglichkeiten, mit der Verschlüsselung und sicheren Speicherung von Passwörtern umzugehen. In diesem Artikel werden einige gängige Technologien und Best Practices vorgestellt, um Entwicklern dabei zu helfen, die Sicherheit von Benutzerkennwörtern zu verbessern. Passwortverschlüsselung mit Hash-Funktionen Beim Speichern von Passwörtern sollten diese niemals im Klartext gespeichert werden;

Ausführlicher Vergleich von Express und Laravel: Wie wählt man das beste Framework aus? Ausführlicher Vergleich von Express und Laravel: Wie wählt man das beste Framework aus? Mar 09, 2024 pm 01:33 PM

Ausführlicher Vergleich von Express und Laravel: Wie wählt man das beste Framework aus? Bei der Auswahl eines für Ihr Projekt geeigneten Back-End-Frameworks sind Express und Laravel zweifellos zwei beliebte Optionen unter Entwicklern. Express ist ein leichtes Framework auf Basis von Node.js, während Laravel ein beliebtes Framework auf Basis von PHP ist. In diesem Artikel werden die Vor- und Nachteile dieser beiden Frameworks ausführlich verglichen und spezifische Codebeispiele bereitgestellt, um Entwicklern bei der Auswahl des Frameworks zu helfen, das ihren Anforderungen am besten entspricht. Leistung und SkalierbarkeitExpr

Vergleichsanalyse von Express und Laravel: Wählen Sie das Framework, das besser zu Ihnen passt Vergleichsanalyse von Express und Laravel: Wählen Sie das Framework, das besser zu Ihnen passt Mar 10, 2024 pm 10:15 PM

Express und Laravel sind zwei sehr beliebte Web-Frameworks, die die hervorragenden Frameworks der beiden wichtigsten Entwicklungssprachen JavaScript bzw. PHP darstellen. In diesem Artikel wird eine vergleichende Analyse dieser beiden Frameworks durchgeführt, um Entwicklern bei der Auswahl eines Frameworks zu helfen, das besser zu ihren Projektanforderungen passt. 1. Framework-Einführung Express ist ein Webanwendungs-Framework, das auf der Node.js-Plattform basiert. Es bietet eine Reihe leistungsstarker Funktionen und Tools, mit denen Entwickler schnell leistungsstarke Webanwendungen erstellen können. Äußern

So verwenden Sie PHP zur Implementierung der Passwortverschlüsselungsfunktion So verwenden Sie PHP zur Implementierung der Passwortverschlüsselungsfunktion Aug 19, 2023 am 09:16 AM

So verwenden Sie PHP zur Implementierung der Passwortverschlüsselungsfunktion. Passwort ist eine Sicherheitsüberprüfungsmethode, die wir im Leben und bei der Arbeit häufig verwenden müssen. Um die Privatsphäre der Benutzer zu schützen, müssen wir die Passwörter der Benutzer verschlüsseln und speichern, um zu verhindern, dass sie von Kriminellen gestohlen und missbraucht werden. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP die Kennwortverschlüsselungsfunktion implementieren, um die Sicherheit von Benutzerkennwörtern zu erhöhen. In PHP gibt es eine sehr leistungsfähige Verschlüsselungsfunktion „password_hash()“, mit der sich ein Hashwert eines Passworts generieren lässt. Diese Funktion kann zwei Parameter akzeptieren: Klartext-Passwort und a

PHP und SQLite: So implementieren Sie die Passwortverschlüsselung und -überprüfung PHP und SQLite: So implementieren Sie die Passwortverschlüsselung und -überprüfung Jul 29, 2023 am 10:17 AM

PHP und SQLite: So implementieren Sie die Passwortverschlüsselung und -überprüfung. Einführung: Im modernen Internetzeitalter ist die Sicherheit von Benutzerpasswörtern besonders wichtig. Um die Privatsphäre der Benutzer zu schützen, verwenden Websites im Allgemeinen Methoden zur Passwortverschlüsselung und -überprüfung, um die Passwortinformationen der Benutzer zu speichern und zu verarbeiten. In diesem Artikel wird erläutert, wie Sie PHP- und SQLite-Datenbanken verwenden, um Funktionen zur Passwortverschlüsselung und -überprüfung zu implementieren. 1. Passwortverschlüsselung Unter Passwortverschlüsselung versteht man die Umwandlung des Klartextpassworts des Benutzers in eine scheinbar unlesbare Zufallszeichenfolge. Selbst wenn die Datenbank durchgesickert ist, wird dieser Konvertierungsprozess durchgeführt.

Eingehende Analyse der MySQL-Passwortverschlüsselungsmethode Eingehende Analyse der MySQL-Passwortverschlüsselungsmethode Jun 15, 2023 pm 09:24 PM

Mit der Entwicklung des Internets wird MySQL als relationales Open-Source-Datenbankverwaltungssystem in verschiedenen Anwendungen häufig eingesetzt. Eines der wichtigen Sicherheitsprobleme ist die Verschlüsselung und Speicherung von MySQL-Benutzerkennwörtern. Welche Methoden gibt es also für die MySQL-Passwortverschlüsselung? In diesem Artikel erhalten Sie eine ausführliche Analyse. Wie MySQL-Passwörter gespeichert werden Bevor wir die MySQL-Passwortverschlüsselungsmethode verstehen, wollen wir zunächst verstehen, wie MySQL-Passwörter gespeichert werden. Vor MySQL Version 5.7 war der Einweg-Hash-Algorithmus (S

So entwickeln Sie ein zuverlässiges System zur Passwortverschlüsselung und -entschlüsselung mit PHP und Vue.js So entwickeln Sie ein zuverlässiges System zur Passwortverschlüsselung und -entschlüsselung mit PHP und Vue.js Jul 05, 2023 pm 08:53 PM

So entwickeln Sie mit PHP und Vue.js ein zuverlässiges System zur Passwortverschlüsselung und -entschlüsselung. Einführung: In der Online-Welt ist Passwortsicherheit besonders wichtig. Um die Privatsphäre und Sicherheit der Benutzer zu schützen, müssen wir ein zuverlässiges System zur Passwortverschlüsselung und -entschlüsselung verwenden. In diesem Artikel stellen wir anhand von Codebeispielen vor, wie man mithilfe von PHP und Vue.js ein zuverlässiges Passwort-Verschlüsselungs- und -Entschlüsselungssystem entwickelt. 1. Verstehen Sie die Prinzipien der Passwortverschlüsselung und -entschlüsselung. Bevor wir mit der Entwicklung beginnen, müssen wir die Prinzipien der Passwortverschlüsselung und -entschlüsselung verstehen. Im Allgemeinen verwenden wir Hashes

See all articles