2abf56dfd6
Some checks failed
Test github.com/euphoria-laxis/argon2 / build (push) Has been cancelled
55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
# Argon2 utils
|
|
|
|
## About
|
|
|
|
Utils to encrypt passwords using argon2
|
|
|
|
## Usages
|
|
|
|
### Hash password
|
|
|
|
````go
|
|
password := 'qwerty@123'
|
|
// Create new encoder using default options
|
|
encoder, _ := argon2.NewEncoder()
|
|
hashedString, err = encoder.HashString(randomString)
|
|
if err != nil {
|
|
// handle error
|
|
}
|
|
````
|
|
|
|
### Compare password with hashed string
|
|
|
|
````go
|
|
// Create new decoder using default options
|
|
decoder, _ := argon2.NewDecoder()
|
|
match, err := decoder.CompareStringToHash(password, hashedString)
|
|
if err != nil {
|
|
// handle error
|
|
}
|
|
````
|
|
|
|
### Configure encoder or decoder options
|
|
|
|
Note that encoder and decoder inherited from the same base struct *(argon2.Options)*.
|
|
You can use the same `argon2.OptFunc` slice to configure both encoder and decoder.
|
|
|
|
````go
|
|
// Create new encoder using custom parameters
|
|
encoder, options := argon2.NewEncoder(
|
|
SetMemory(64 * 1024), // 64 bits
|
|
SetParallelism(4), // 4 concurrent actions
|
|
SetKeyLength(32), // key length
|
|
SetSaltLength(32), // salt length
|
|
SetIterations(4), // number of iterations
|
|
)
|
|
````
|
|
|
|
## Contributions
|
|
|
|
**Euphoria Laxis** [GitHub](https://github.com/euphoria-laxis)
|
|
|
|
## License
|
|
|
|
This project is under [MIT License](./LICENSE)
|