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

Analyse der Linux-Bootsystemmethoden

Dieser Artikel beschreibt, wie man das Linux-Syst...

Einführung in die Installationsmethode in Vue

Inhaltsverzeichnis 1. Weltweit registrierte Kompo...

HTML Mehrere spezielle Trennlinieneffekte

1. Grundlinien 2. Spezialeffekte (die Effekte sin...

Warum funktioniert Ihre Größe: 100 % nicht?

Warum funktioniert Ihre Größe: 100 % nicht? Diese...

So implementieren Sie das Builder-Muster in Javascript

Überblick Das Builder-Muster ist ein relativ einf...

Lösung für „Keine Eingabedatei angegeben“ in nginx+php

Heute ist in meiner lokalen Entwicklungsumgebung ...

Sechs Möglichkeiten, die Größe von Docker-Images zu reduzieren

Seitdem ich 2017 mit der Arbeit an Vulhub begonne...

Sehr empfehlenswert! Syntax Sugar in Vue 3.2 einrichten

Inhaltsverzeichnis Vorherige 1. Was ist Setup-Syn...