Skip to content

Instantly share code, notes, and snippets.

@lettergram
Created March 18, 2015 23:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lettergram/b58eaffe48ffaecfad39 to your computer and use it in GitHub Desktop.
Save lettergram/b58eaffe48ffaecfad39 to your computer and use it in GitHub Desktop.
// Users username and password, outputs password + salt
func Password(user string, pass string) string {
var password []byte
var username []byte
// Converts username to bytes
username = []byte("user:" + user + pass)
// Dial up a mongoDB session
session, err := mgo.Dial("127.0.0.1:27017/")
if err != nil {
fmt.Println(err)
return ""
}
// Opens the "passwords" databases, "salts" collection
c := session.DB("passwords").C("salts")
// Result with store username + password
result := Salting_Struct{}
// Search for the salted username, place in result the salt
c.Find(bson.M{"username": SHA(username)}).One(&result)
// close mongoDB session to free resources
session.Close()
// Converts users input password + generated salt to bytes
password = []byte(pass + result.salt)
return SHA(password)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment