package main import ( "database/sql" "golang.org/x/crypto/bcrypt" _ "github.com/mattn/go-sqlite3" ) const ( bcryptCost = 12 ) func Register(db *sql.DB, username, password string) error { hash, err := bcrypt.GenerateFromPassword([]byte(password), bcryptCost) if err != nil { return err } err = Transaction(db, func(tx *sql.Tx) error { _, err := tx.Exec(`INSERT INTO users (username, password_bcrypt) VALUES(?, ?);`, username, hash) return err }) return err }