argon2/README.md

55 lines
1.3 KiB
Markdown
Raw Normal View History

2024-07-24 23:48:36 +02:00
# 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)