Heim > Backend-Entwicklung > Golang > Wie implementiert man die nicht widerhallende Passworteingabe in Go?

Wie implementiert man die nicht widerhallende Passworteingabe in Go?

Linda Hamilton
Freigeben: 2024-12-29 17:03:10
Original
757 Leute haben es durchsucht

How to Implement Non-Echoing Password Entry in Go?

Nicht widerhallende Passworteingabe in Go

Situation:

Abrufen eines Passworts vom Benutzer, ohne dass die eingegebenen Zeichen angezeigt werden ist eine häufige Anforderung. Wie kann dies in Go erreicht werden?

Lösung:

Go bietet nicht direkt eine getpasswd-Funktionalität an. Der folgende Ansatz löst die Aufgabe jedoch effektiv:

Implementierungsdetails

  1. Echo deaktivieren: Um das Zeichenecho zu unterdrücken, wird das Termpaket importiert. term.ReadPassword wird verwendet, um das Passwort zu lesen und gleichzeitig Benutzereingaben zu verbergen.
  2. Benutzernamen abrufen: Das Skript fordert den Benutzer mithilfe von fmt.Print zur Eingabe eines Benutzernamens auf. Der bufio.NewReader wird verwendet, um den Benutzernamen zu lesen.
  3. Get Password: term.ReadPassword wird verwendet, um das Passwort zu erhalten, nachdem der Benutzer dazu aufgefordert wurde. Vom Benutzer eingegebene Passwörter sind in der Konsole nicht sichtbar.
  4. Leerzeichen kürzen: Der erhaltene Benutzername und das Passwort werden gekürzt, um alle führenden oder nachgestellten Leerzeichen zu entfernen.

Beispiel:

package main

import (
    "bufio"
    "fmt"
    "golang.org/x/term"
    "os"
    "strings"
)

func main() {
    u, p, _ := credentials()
    fmt.Printf("Username: %s, Password: %s\n", u, p)
}

func credentials() (string, string, error) {
    fmt.Print("Enter Username: ")
    r := bufio.NewReader(os.Stdin)
    u, err := r.ReadString('\n')
    if err != nil {
        return "", "", err
    }

    fmt.Print("Enter Password: ")
    bp, err := term.ReadPassword(int(syscall.Stdin))
    if err != nil {
        return "", "", err
    }

    p := string(bp)
    return strings.TrimSpace(u), strings.TrimSpace(p), nil
}
Nach dem Login kopieren

Dieses Code-Snippet demonstriert den Prozess des Erhaltens von Benutzernamen und Passwort vom Benutzer ohne Anzeige der Passwortzeichen.

Das obige ist der detaillierte Inhalt vonWie implementiert man die nicht widerhallende Passworteingabe in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage