首頁 > 後端開發 > Golang > Go中如何實現非回顯密碼輸入?

Go中如何實現非回顯密碼輸入?

Linda Hamilton
發布: 2024-12-29 17:03:10
原創
758 人瀏覽過

How to Implement Non-Echoing Password Entry in Go?

Go 中的非回顯密碼輸入

情況:

從使用者擷取密碼而不顯示輸入的字元是一個常見的要求。在 Go 中如何實現這一點?

解:

Go 不直接提供 getpasswd 功能。然而,以下方法有效地完成了任務:

實作細節

  1. 停用回顯:為了抑製字元回顯,匯入術語包。 term.ReadPassword 用於在隱藏使用者輸入的同時讀取密碼。
  2. 取得使用者名稱: 此腳本使用 fmt.Print 提示使用者輸入使用者名稱。 bufio.NewReader 用於讀取使用者名稱。
  3. 取得密碼: term.ReadPassword 用於在提示使用者輸入密碼後取得密碼。使用者輸入的密碼在控制台中不可見。
  4. 修剪空格:修剪取得的使用者名稱和密碼以刪除任何前導或尾隨空格。

範例:

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
}
登入後複製

此程式碼片段示範了從使用者取得使用者名稱和密碼的過程,而不顯示密碼字元。

以上是Go中如何實現非回顯密碼輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板