package main import ( "crypto/rand" "encoding/base64" "fmt" "os" "golang.org/x/term" "roseh.moe/pkg/roseh.moe/internal/pwhash" ) func hashpw() error { fmt.Fprint(os.Stderr, "Enter password: ") pw, err := term.ReadPassword(int(os.Stdin.Fd())) fmt.Fprintln(os.Stderr) if err != nil { return err } salt := make([]byte, pwhash.SaltSize) rand.Read(salt) pwHash, err := pwhash.Hash(string(pw), salt) if err != nil { return err } fmt.Printf("NotepadPassword:\"%s\"\n", base64.StdEncoding.EncodeToString(append(salt, pwHash...))) return nil } func main() { if err := hashpw(); err != nil { fmt.Fprintf(os.Stderr, "hashpw: %s\n", err) os.Exit(1) } }