A Go package to manage password hashing, verification, and validation.
Github | https://github.com/usvc/go-password |
Gitlab | https://gitlab.com/usvc/modules/go/password |
import "github.com/usvc/go-password"
plaintext := "abcd1234!@#$"
hash, salt, err := password.Hash(plaintext, 32)
// ...
// store the hash and salt
// ...
storedHash := "<hash>"
storedSalt := "<salt>"
plaintext := "abcd1234!@#$"
err := password.Verify(plaintext, storedHash, storedSalt)
if err != nil {
// handle failed verification
} else {
// handle successful verification
}
defaultPolicy := password.GetDefaultPolicy()
plaintext := "abcd1234!@#$"
if err := password.Validate(plaintext, defaultPolicy); err != nil {
// handle failed validation
} else {
// handle successful validation
}
customPolicy := password.Policy{
MaximumLength: 32,
MinimumLength: 12,
MinimumLowercaseCount: 1,
MinimumUppercaseCount: 1,
MinimumNumericCount: 1,
MinimumSpecialCount: 1,
CustomSpecial: []byte("`!@"),
}
plaintext := "abcd1234!@#$"
if err := password.Validate(plaintext, defaultPolicy); err != nil {
// handle failed validation
} else {
// handle successful validation
}
- Clone this repository
- Run
make deps
to pull in external dependencies - Write some awesome stuff
- Run
make test
to ensure unit tests are passing - Push
Github is used to deploy binaries/libraries because of it's ease of access by other developers.
Releasing of the binaries can be done via Travis CI.
- On Github, navigate to the tokens settings page (by clicking on your profile picture, selecting Settings, selecting Developer settings on the left navigation menu, then Personal Access Tokens again on the left navigation menu)
- Click on Generate new token, give the token an appropriate name and check the checkbox on
public_repo
within the repo header - Copy the generated token
- Navigate to travis-ci.org and access the cooresponding repository there. Click on the More options button on the top right of the repository page and select Settings
- Scroll down to the section on Environment Variables and enter in a new NAME with
RELEASE_TOKEN
and the VALUE field cooresponding to the generated personal access token, and hit Add
To set up the CI pipeline in Gitlab:
- Run
make .ssh
- Copy the contents of the file generated at
./.ssh/id_rsa.base64
into an environment variable namedDEPLOY_KEY
in Settings > CI/CD > Variables - Navigate to the Deploy Keys section of the Settings > Repository > Deploy Keys and paste in the contents of the file generated at
./.ssh/id_rsa.pub
with the Write access allowed checkbox enabled
DEPLOY_KEY
: generate this by runningmake .ssh
and copying the contents of the file generated at./.ssh/id_rsa.base64
Code in this package is licensed under the MIT license (click to view text).