Vollständige Schritte zum Erstellen eines Passwortgenerators mit Node.js

Vollständige Schritte zum Erstellen eines Passwortgenerators mit Node.js

1. Vorbereitung

1.1 Projekt erstellen

$ npm init 

1.2 Installationsabhängigkeiten

$ npm ich commander chalk zwischenablage

1.3 Erstellen der Eintragsdatei index.js

Werfen wir einen Blick auf process.argv

// index.js
Konsole.log(Prozess.argv)

Terminal-Ausführungsbefehl

$ Knotenindex

Im Terminal sehen Sie

Die Eigenschaft process.argv gibt ein Array zurück, das die Befehlszeilenargumente enthält, die beim Start des Node.js-Prozesses übergeben wurden. Das erste Element ist process.execPath. Das zweite Element ist der Pfad zur ausgeführten JavaScript-Datei. Die verbleibenden Elemente sind alle zusätzlichen Befehlszeilenargumente.

Befehl ausführen

$ Knotenindex generieren

Der dritte Parameter: generate

2. Befehlszeilen schreiben

2.1 Version und Beschreibung hinzufügen

// index.js
const-Programm = erforderlich('Kommandant');
program.version('1.0.0').description('Einfacher Passwortgenerator').parse()

Terminalausführungsbefehl: Sie können die Beschreibung von passgen sehen

Führen Sie den Befehl weiter aus: Sie können die Version von passgen sehen

2.2 Befehl zur Konfiguration der Kennwortlänge

const-Programm = erforderlich('Kommandant');

program.version('1.0.0').description('Einfacher Passwortgenerator')
program.option('-l --length <Zahl>', 'Länge des Passworts').parse()
Konsole.log(Programm.Opts())

Terminalausführungsbefehl: Sie können den Kennwortlängenbefehl von passgen sehen

Terminal-Ausführungsbefehl:

2.2 Standardwert für Passwortlänge hinzugefügt: 8

program.option('-l --length <Zahl>', 'Länge des Passworts', '8').parse()
Konsole.log(Programm.Opts())

Terminalausführungsbefehl: Legen Sie die Kennwortlänge nicht fest. Sie können sehen, dass der Standardwert -8 verwendet wird.

Terminalausführungsbefehl: Setzen Sie die Kennwortlänge auf 10

2.3 Konfigurieren des Befehls zum Speichern des Passworts

program.option('-l --length <Zahl>', 'Länge des Passworts', '8')
.option('-s --save', 'Passwort in password.txt speichern').parse()

2.4 Passwortformat konfigurieren: Keine Zahlen

.option('-nn --no-number', 'Zahlen entfernen').parse()

Terminal-Ausführungsbefehl: Standardmäßig gibt es Zahlen

Terminalausführungsbefehl: Digitales Passwort festlegen und löschen

2.5 Konfigurationskennwortformat: Keine Symbole

.option('-ns --no-symbols', 'Symbole entfernen').parse()

Terminal-Ausführungsbefehl: Standardmäßig hat es Symbole

Terminalausführungsbefehl: Digitales Passwort festlegen und löschen

3. Parsen der Kommandozeile - Erstellen eines Passworts

// index.js
const-Programm = erforderlich('Kommandant');
const createPassword = erfordern('./utils/createPassword')
const log = konsole.log

program.version('1.0.0').description('Einfacher Passwortgenerator')
Programm
.option('-l --length <Zahl>', 'Länge des Passworts', '8')
.option('-s --save', 'Passwort in password.txt speichern')
.option('-nn --no-numbers', 'Zahlen entfernen')
.option('-ns --no-symbols', 'Symbole entfernen').parse()

const {Länge, Speichern, Zahlen, Symbole} = program.opts()

// Generiertes Passwort abrufen
const generatedPassword = createPassword(Länge, Zahlen, Symbole)

// Generiertes Passwort ausgeben

log(generiertesPasswort)

Erstellen Sie utils/createPassword.js

// Passwort erstellen.js
const alpha = "qwertyuiopasdfghjklzxcvbnm"
Konstantenzahlen = "0123456789"
Konstante Symbole = '!@#$%^&*_-=+'


const createPassword = (Länge = 8, hat Zahlen = wahr, hat Symbole = wahr) => {
    let chars = alpha
    hatZahlen ? (Zeichen += Zahlen): ''
    hatSymbole? (Zeichen += Symbole): ''
    returniere generatePassword(Länge, Zeichen)
}

const generatePassword = (Länge, Zeichen) => {
    let Passwort = ''
    für(lass i = 0; i < Länge; i++){
        Passwort + = Zeichen.charAt (Math.floor (Math.random () * Zeichen.Länge))
    }
    Passwort zurückgeben
}
module.exports = Passwort erstellen

Terminalausführungsbefehl: Kennwortgenerierung anzeigen

3.1 Farbe hinzufügen

// index.js
const Kreide = erforderlich('Kreide');
log(chalk.blue('Generiertes Passwort: ') + chalk.bold(generiertesPasswort))

Terminal führt Befehl aus: Sie können die Farbänderungen sehen

3.2 Zwischenablage hinzufügen

// index.js
const clipboardy = erfordern('Zwischenablage');
// In die Zwischenablage kopieren
clipboardy.writeSync(generiertesPasswort)
log(chalk.yellow('Passwort in die Zwischenablage kopiert!'))

4. Speichern Sie das Passwort in der entsprechenden Datei

// index.js
const savePassword = erfordern('./utils/savePassword')
// In Datei speichern
if (speichern) savePassword(generiertesPasswort)

Erstellen Sie utils/savePassword.js

const fs = erfordern('fs')
const Pfad = require('Pfad')
const os = erfordern('os')
const Kreide = erforderlich('Kreide')

const savePassword = (Passwort) => {
    fs.open(Pfad.join(__dirname, '../', 'passwords.txt'), 'a', '666', (e, id) => {
        fs.write(id, password + os.EOL, null, 'utf-8', ()=>{
            fs.schließen(id, ()=>{
                console.log(chalk.green('Passwort in passwords.txt gespeichert'))
            })
        })
    })
}

module.exports = Passwort speichern

Führen Sie den Befehl im Terminal aus: Sie können sehen, dass die Datei passwords.txt im Projekt generiert wird und das Passwort erfolgreich gespeichert wurde

5. Konfigurieren Sie lokale npm-Module als globale Passgen

// paket.json
  "preferGlobal": wahr,
  "bin":"./index.js",

Terminal-Ausführungsbefehl:

Befehl npm link: Verknüpfen Sie das npm-Modul mit dem entsprechenden laufenden Projekt, um das Debuggen und Testen lokaler Module zu erleichtern.

//index.js
#!/usr/bin/env node //Füge die erste Zeile hinzu

Terminal-Ausführungsbefehl:

Zusammenfassung: Es ist geschafft ✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️

Referenzlink: nodejs.cn/api/process…

Zusammenfassen

Dies ist das Ende dieses Artikels über die Verwendung von Node.js zum Erstellen eines Passwortgenerators. Weitere Informationen zum Node.js-Passwortgenerator finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Erläuterung des Prinzips des MySQL-Replikationsmechanismus

>>:  So installieren Sie Redis5.0.3 im Docker

Artikel empfehlen

Über React Native, das keine Verbindung zum Simulator herstellen kann

React Native kann native iOS- und Android-Apps ba...

Implementierung der Nginx-Konfiguration des lokalen Image-Servers

Inhaltsverzeichnis 1. Einführung in Nginx 2. Aufb...

Optimierung des MySQL Thread_Stack-Verbindungsthreads

MySQL kann nicht nur über das Netzwerk, sondern a...

Detaillierte Erläuterung der MySQL-Cursor-Konzepte und -Verwendung

Dieser Artikel erläutert anhand von Beispielen da...

Detailliertes Tutorial zur Installation von Prometheus mit Docker

Inhaltsverzeichnis 1. Node Exporter installieren ...

Grundlegender Installationsprozess von mysql5.7.19 unter winx64 (Details)

1. Herunterladen https://dev.mysql.com/downloads/...

Implementierungscode der Front-End-HTML-Skin-Änderungsfunktion

50 Zeilen Code zum Ändern von 5 Hautfarben, einsc...

Tutorial zur SQL-Optimierung: IN- und RANGE-Abfragen

Vorwort In „High Performance MySQL“ wird erwähnt,...

Facebooks nahezu perfekte Neugestaltung aller Internetdienste

<br />Originalquelle: http://www.a-xuan.cn/?...

Zusammenfassung der Erfahrungen beim Website-Erstellen

<br />Welche Grundsätze sollten beachtet wer...

Hinweise zur IE8-Kompatibilität, die mir aufgefallen sind

1. getElementById von IE8 unterstützt nur IDs, nic...

Beispielcode für horizontales Balkendiagramm von Echarts Bar

Inhaltsverzeichnis Horizontales Balkendiagramm Da...