Maison > développement back-end > Golang > Comment implémenter une saisie de mot de passe sans écho dans Go ?

Comment implémenter une saisie de mot de passe sans écho dans Go ?

Linda Hamilton
Libérer: 2024-12-29 17:03:10
original
757 Les gens l'ont consulté

How to Implement Non-Echoing Password Entry in Go?

Saisie de mot de passe sans écho dans Go

Situation :

Récupération d'un mot de passe de l'utilisateur sans afficher les caractères saisis est une exigence courante. Comment cela peut-il être réalisé dans Go ?

Solution :

Go n'offre pas directement de fonctionnalité getpasswd. Cependant, l'approche suivante accomplit efficacement la tâche :

Détails de mise en œuvre

  1. Désactiver l'écho : Pour supprimer l'écho des caractères, le terme package est importé. term.ReadPassword est utilisé pour lire le mot de passe tout en masquant les entrées de l'utilisateur.
  2. Obtenir le nom d'utilisateur : Le script demande à l'utilisateur un nom d'utilisateur à l'aide de fmt.Print. Le bufio.NewReader est utilisé pour lire le nom d'utilisateur.
  3. Obtenir le mot de passe : term.ReadPassword est utilisé pour obtenir le mot de passe après l'avoir demandé à l'utilisateur. Les mots de passe saisis par l'utilisateur ne sont pas visibles dans la console.
  4. Couper les espaces : Le nom d'utilisateur et le mot de passe obtenus sont coupés pour supprimer tout espace de début ou de fin.

Exemple :

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

Cet extrait de code démontre le processus d'obtention du nom d'utilisateur et du mot de passe de l'utilisateur sans afficher les caractères du mot de passe.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal