Skip to content

oseoin/crypt

 
 

Repository files navigation

Crypt

Build Status Go Report Card Documentation

Crypt implementation in pure Go. It provides a unified interface to varous hashing algorithms for key derivation.

Example

func main() {
    password := "password"
    settings := "$argon2id$v=19$m=65536,t=2,p=4$c2FsdHNhbHQ" // salt = "saltsalt"

    encoded, err := crypt.Crypt(password, settings)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(encoded)
    // Output: $argon2id$v=19$m=65536,t=2,p=4$c2FsdHNhbHQ$mxUf7CB5gEwtDSiHfZCvxj17E8XeTFh2fpti1ioD3SA
}

Algorithm

Currently, the following algorithms are supported:

Code Name Example
1 MD5 $1$deadbeef$Q7g0UO4hRC0mgQUQ/qkjZ0
5 SHA256 $5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5
6 SHA512 $6$saltstring$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJuesI68u4OTLiBFdcbYEdFCoEOfaS35inz1
2a bcrypt $2a$05$/OK.fbVrR/bpIqNJ5ianF.Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq
argon2i Argon2i $argon2i$v=19$m=65536,t=2$c29tZXNhbHQ$IMit9qkFULCMA/ViizL57cnTLOa5DiVM9eMwpAvPwr4
argon2id Argon2id $argon2id$v=19$m=65536,t=2,p=4$c29tZXNhbHQ$GpZ3sK/oH9p7VIiV56G/64Zo/8GaUw434IimaPqxwCo

It's recommended that you used argon2id for crypting passwords.

Links

This implementation is inspired by crypt.

License

The code is licensed under Apache 2.0

About

Crypt implementation in pure Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%