Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
G

go-password

> 编程语言
Open source

A Golang library for generating high-entropy random passwords similar to 1Password or LastPass.

690 stars0 likes0 views
WebsiteGitHub

About

A Golang library for generating high-entropy random passwords similar to 1Password or LastPass.

Golang Password Generator

This library implements generation of random passwords with provided requirements as described by AgileBits 1Password in pure Golang. The algorithm is commonly used when generating website passwords.

The library uses crypto/rand for added randomness.

Sample example passwords this library may generate:

0N[k9PhDqmmfaO`p_XHjVv`HTq|zsH4XiH8umjg9JAGJ#\Qm6lZ,28XF4{X?3sHj
7@90|0H7!4p\,c Since these are completely randomized, it's possible that they may generate passwords that don't comply with some custom password policies, such as ones that require both upper case AND lower case letters. If your particular use case needs a mix of casing, then you can either increase the number of characters in the password or check the output and regenerate if it fails a particular constraint, such as requiring both upper and lower case.

## Installation

```sh
$ go get github.com/sethvargo/go-password/password

Usage

go
package main

import (
  "log"

  "github.com/sethvargo/go-password/password"
)

func main() {
  // Generate a password that is 64 characters long with 10 digits, 10 symbols,
  // allowing upper and lower case letters, disallowing repeat characters.
  res, err := password.Generate(64, 10, 10, false, false)
  if err != nil {
    log.Fatal(err)
  }
  log.Print(res)
}

See the GoDoc for more information.

Testing

For testing purposes, instead of accepted a *password.Generator struct, accept a password.PasswordGenerator interface:

go
// func MyFunc(p *password.Generator)
func MyFunc(p password.PasswordGenerator) {
  // ...
}

Then, in tests, use a mocked password generator with stubbed data:

go
func TestMyFunc(t *testing.T) {
  gen := password.NewMockGenerator("canned-response", false)
  MyFunc(gen)
}

In this example, the mock generator will always return the value "canned-response", regardless of the provided parameters.

License

This code is licensed under the MIT license.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Gogolangpasswordpassword-generator

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言