diff options
| author | Rose Hogenson <rosehogenson@posteo.net> | 2025-11-10 19:57:54 -0800 |
|---|---|---|
| committer | Rose Hogenson <rosehogenson@posteo.net> | 2025-11-10 19:57:54 -0800 |
| commit | 7ebfd2d33571b662a4997004cdba53f220631e8b (patch) | |
| tree | dbaeb80fb55e5ee3ababd6eb4387361b59ca8036 /tools/hashpw | |
| parent | e34e193ed2133a0d38a40dee66d405010e5f8cc7 (diff) | |
| download | roseh.moe-7ebfd2d33571b662a4997004cdba53f220631e8b.tar.zst | |
Confirm password
Diffstat (limited to 'tools/hashpw')
| -rw-r--r-- | tools/hashpw/hashpw.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/hashpw/hashpw.go b/tools/hashpw/hashpw.go index 526ad15..f1e76db 100644 --- a/tools/hashpw/hashpw.go +++ b/tools/hashpw/hashpw.go @@ -1,6 +1,7 @@ package main import ( + "bytes" "crypto/rand" "encoding/base64" "fmt" @@ -18,6 +19,15 @@ func hashpw() error { if err != nil { return err } + fmt.Fprint(os.Stderr, "Confirm password: ") + pwConfirm, err := term.ReadPassword(int(os.Stdin.Fd())) + fmt.Fprintln(os.Stderr) + if err != nil { + return err + } + if !bytes.Equal(password, pwConfirm) { + return fmt.Errorf("passwords do not match") + } salt := make([]byte, pwhash.SaltSize) rand.Read(salt) hash, err := pwhash.Hash(string(password), salt) |
