func main() { pwd, err := pwd.PromptNewPassword(40.0) if err != nil { fmt.Println("Failed: ", err) return } salt := make([]byte, 32) if _, err := rand.Reader.Read(salt); err != nil { fmt.Println("Reading salt failed, you're likely doomed.") return } key := security.Scrypt([]byte(pwd), salt, 32) fmt.Printf("Key: %x\nSalt: %x\n", key, salt) }
func generateKey(id, pwd string) []byte { return security.Scrypt([]byte(pwd), []byte(id), 32) }
func hashPassword(salt []byte, password string) []byte { return security.Scrypt([]byte(password), salt, 32) }