kukkubukku/data/users.sh

39 lines
785 B
Bash
Raw Normal View History

#!/bin/bash
createSalt() {
head -c 12 /dev/urandom | base64
}
hashPassword() {
password="$1"
salt="$2"
echo "$password$salt" | sha512sum | cut -d' ' -f1
}
createUser() {
username="$1"
password="$2"
salt="$(createSalt)"
password="$(hashPassword "$password" "$salt")"
echo "INSERT INTO users (username, password, salt) VALUES (
'$(escape "$username")',
'$(escape "$password")',
'$(escape "$salt")'
)" | execute
}
loginUser() {
username="$1"
password="$2"
result="$(echo "SELECT password, salt FROM users WHERE username='$(escape "$username")'" | query)"
hash="$(echo "$result" | getColumns 1)"
salt="$(echo "$result" | getColumns 2)"
password="$(hashPassword "$password" "$salt")"
# return true if password is correct
test "$password" != "$hash"
return
}