Golang Password Generator 是一个用于生成高熵随机密码的Golang库,类似于1Password或LastPass。
这个库在纯 Golang 中实现了生成 AgileBits 1Password 所提供的随机密码的要求。该算法通常在生成网站密码时使用。
该库使用 crypto/rand 来增加随机性。此库可能生成的示例密码示例:
0N[k9PhDqmmfaO`p_XHjVv`HTq|zsH4XiH8umjg9JAGJ#\Qm6lZ,28XF4{X?3sHj
7@90|0H7!4p\,c
由于这些密码是完全随机的,它们有可能产生不符合某些自定义密码策略的密码,例如需要大写字母和小写字母的密码。如果你的特定用例需要混合大小写,那么你可以增加密码中的字符数,或者检查输出结果,如果它不符合特定的约束条件,例如要求同时使用大写和小写,则重新生成。
用法:
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.Printf(res) }
有关更多信息,可参阅GoDoc。