hasher

package module
v0.0.0-...-acd6202 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2019 License: MIT Imports: 7 Imported by: 2

README

Password hasher library for Go

Build Status Coverage Status Go Report Card GoDoc

Installation

go get -u github.com/go-passwd/hasher

Usage

hshr := hasher.New(hasher.TypeSHA512)
hshr.SetPassword(plainTextPassword)
hashedPassword := hshr.String()

Hashers

PlainHasher

Stored password as plain text.

passwordHasher := hasher.New(hasher.TypePlain)
MD5Hasher

Store password as MD5 hash.

passwordHasher := hasher.New(hasher.TypeMD5)
SHA1Hasher

Store password as SHA-1 hash.

passwordHasher := hasher.New(hasher.TypeSHA1)
SHA224Hasher

Store password as SHA-224 hash.

passwordHasher := hasher.New(hasher.TypeSHA224)
SHA256Hasher

Store password as SHA-256 hash.

passwordHasher := hasher.New(hasher.TypeSHA256)
SHA384Hasher

Store password as SHA-384 hash.

passwordHasher := hasher.New(hasher.TypeSHA384)
SHA512Hasher

Store password as SHA-512 hash.

passwordHasher := hasher.New(hasher.TypeSHA512)
SHA512_224Hasher

Store password as SHA-512/224 hash.

passwordHasher := hasher.New(hasher.TypeSHA512_224)
SHA512_256Hasher

Store password as SHA-512/256 hash.

passwordHasher := hasher.New(hasher.TypeSHA512_256)

Documentation

Overview

Package hasher contains a set of password hashers

Index

Constants

View Source
const (
	// DefaultSaltLength is a default salt length when is not set manually
	DefaultSaltLength = 20

	// DefaultIter is a default iterations counter when is not set manually
	DefaultIter = 2048
)
View Source
const (
	// TypePlain is a plain hasher
	TypePlain = "plain"

	// TypeMD5 is a MD5 hasher
	TypeMD5 = "md5"

	// TypeSHA1 is a SHA-1 hasher
	TypeSHA1 = "sha1"

	// TypeSHA224 is a SHA-224 hasher
	TypeSHA224 = "sha224"

	// TypeSHA256 is a SHA-256 hasher
	TypeSHA256 = "sha256"

	// TypeSHA384 is a SHA-384 hasher
	TypeSHA384 = "sha384"

	// TypeSHA512 is a SHA-512 hasher
	TypeSHA512 = "sha512"

	// TypeSHA512_224 is a SHA-512/224 hasher
	TypeSHA512_224 = "sha512_224"

	// TypeSHA512_256 is a SHA-512/256 hasher
	TypeSHA512_256 = "sha512_256"
)

Hasher types used in function New

Variables

This section is empty.

Functions

func Register

func Register(code string, hshr NewHasherFunc) error

Register a new hasher

Types

type Hasher

type Hasher interface {
	// Code returns internal hasher code (go-passwd/marshaler)
	Code() string

	// Hash password
	Hash(string) []byte

	// SetPassword
	SetPassword(string)

	Check(string) bool

	// String representation of hashed password
	String() string
}

Hasher interface

func New

func New(hasherType string) (Hasher, error)

New returns new hasher of type hasherType

func NewMD5Hasher

func NewMD5Hasher(iterations *int, salt *string, hashedPassword *[]byte) Hasher

NewMD5Hasher returns a new MD5 hasher instance

func NewPlainHasher

func NewPlainHasher(iterations *int, salt *string, hashedPassword *[]byte) Hasher

NewPlainHasher returns a new plain hasher instance

func NewSHA1Hasher

func NewSHA1Hasher(iterations *int, salt *string, hashedPassword *[]byte) Hasher

NewSHA1Hasher returns a new SHA1 hasher instance

func NewSHA224Hasher

func NewSHA224Hasher(iterations *int, salt *string, hashedPassword *[]byte) Hasher

NewSHA224Hasher returns a new plain hasher instance

func NewSHA256Hasher

func NewSHA256Hasher(iterations *int, salt *string, hashedPassword *[]byte) Hasher

NewSHA256Hasher returns a new plain hasher instance

func NewSHA384Hasher

func NewSHA384Hasher(iterations *int, salt *string, hashedPassword *[]byte) Hasher

NewSHA384Hasher returns a new plain hasher instance

func NewSHA512Hasher

func NewSHA512Hasher(iterations *int, salt *string, hashedPassword *[]byte) Hasher

NewSHA512Hasher returns a new plain hasher instance

func NewSHA512_224Hasher

func NewSHA512_224Hasher(iterations *int, salt *string, hashedPassword *[]byte) Hasher

NewSHA512_224Hasher returns a new plain hasher instance

func NewSHA512_256Hasher

func NewSHA512_256Hasher(iterations *int, salt *string, hashedPassword *[]byte) Hasher

NewSHA512_256Hasher returns a new plain hasher instance

func NewWithParams

func NewWithParams(hasherType string, iterations *int, salt *string, hashedPassword *[]byte) (Hasher, error)

NewWithParams returns new hasher of type hasherType and set hasher params

type MD5Hasher

type MD5Hasher struct {
	Salt     *string
	Iter     *int
	Password *[]byte
}

MD5Hasher hash password in MD5

func (*MD5Hasher) Check

func (h *MD5Hasher) Check(plain string) bool

Check if hashed password is equal stored password hash

func (MD5Hasher) Code

func (h MD5Hasher) Code() string

Code returns internal MD5 hasher code

func (*MD5Hasher) Hash

func (h *MD5Hasher) Hash(password string) []byte

Hash a password

func (*MD5Hasher) SetPassword

func (h *MD5Hasher) SetPassword(plain string)

SetPassword sets a password

func (*MD5Hasher) String

func (h *MD5Hasher) String() string

type NewHasherFunc

type NewHasherFunc func(iterations *int, salt *string, hashedPassword *[]byte) Hasher

NewHasherFunc describes function that returns new hasher

type PlainHasher

type PlainHasher struct {
	Salt     *string // Not used
	Iter     *int    // Not used
	Password *[]byte
}

PlainHasher stored password as plain text

func (*PlainHasher) Check

func (h *PlainHasher) Check(plain string) bool

Check if password is equal stored password

func (PlainHasher) Code

func (h PlainHasher) Code() string

Code returns internal plain hasher code

func (*PlainHasher) Hash

func (h *PlainHasher) Hash(password string) []byte

Hash a password

func (*PlainHasher) SetPassword

func (h *PlainHasher) SetPassword(password string)

SetPassword sets a password

func (*PlainHasher) String

func (h *PlainHasher) String() string

type SHA1Hasher

type SHA1Hasher struct {
	Salt     *string
	Iter     *int
	Password *[]byte
}

SHA1Hasher hash password in SHA-1

func (*SHA1Hasher) Check

func (h *SHA1Hasher) Check(plain string) bool

Check if hashed password is equal stored password hash

func (SHA1Hasher) Code

func (h SHA1Hasher) Code() string

Code returns internal SHA-224 hasher code

func (*SHA1Hasher) Hash

func (h *SHA1Hasher) Hash(password string) []byte

Hash a password

func (*SHA1Hasher) SetPassword

func (h *SHA1Hasher) SetPassword(plain string)

SetPassword sets a password

func (*SHA1Hasher) String

func (h *SHA1Hasher) String() string

type SHA224Hasher

type SHA224Hasher struct {
	Salt     *string
	Iter     *int
	Password *[]byte
}

SHA224Hasher hash password in SHA-224

func (*SHA224Hasher) Check

func (h *SHA224Hasher) Check(plain string) bool

Check if hashed password is equal stored password hash

func (SHA224Hasher) Code

func (h SHA224Hasher) Code() string

Code returns internal SHA-224 hasher code

func (*SHA224Hasher) Hash

func (h *SHA224Hasher) Hash(password string) []byte

Hash a password

func (*SHA224Hasher) SetPassword

func (h *SHA224Hasher) SetPassword(plain string)

SetPassword sets a password

func (*SHA224Hasher) String

func (h *SHA224Hasher) String() string

type SHA256Hasher

type SHA256Hasher struct {
	Salt     *string
	Iter     *int
	Password *[]byte
}

SHA256Hasher hash password in SHA256

func (*SHA256Hasher) Check

func (h *SHA256Hasher) Check(plain string) bool

Check if hashed password is equal stored password hash

func (SHA256Hasher) Code

func (h SHA256Hasher) Code() string

Code returns internal SHA-224 hasher code

func (*SHA256Hasher) Hash

func (h *SHA256Hasher) Hash(password string) []byte

Hash a password

func (*SHA256Hasher) SetPassword

func (h *SHA256Hasher) SetPassword(plain string)

SetPassword sets a password

func (*SHA256Hasher) String

func (h *SHA256Hasher) String() string

type SHA384Hasher

type SHA384Hasher struct {
	Salt     *string
	Iter     *int
	Password *[]byte
}

SHA384Hasher hash password in SHA-384

func (*SHA384Hasher) Check

func (h *SHA384Hasher) Check(plain string) bool

Check if hashed password is equal stored password hash

func (SHA384Hasher) Code

func (h SHA384Hasher) Code() string

Code returns internal SHA-384 hasher code

func (*SHA384Hasher) Hash

func (h *SHA384Hasher) Hash(password string) []byte

Hash a password

func (*SHA384Hasher) SetPassword

func (h *SHA384Hasher) SetPassword(plain string)

SetPassword sets a password

func (*SHA384Hasher) String

func (h *SHA384Hasher) String() string

type SHA512Hasher

type SHA512Hasher struct {
	Salt     *string
	Iter     *int
	Password *[]byte
}

SHA512Hasher hash password in SHA-512

func (*SHA512Hasher) Check

func (h *SHA512Hasher) Check(plain string) bool

Check if hashed password is equal stored password hash

func (SHA512Hasher) Code

func (h SHA512Hasher) Code() string

Code returns internal SHA-512 hasher code

func (*SHA512Hasher) Hash

func (h *SHA512Hasher) Hash(password string) []byte

Hash a password

func (*SHA512Hasher) SetPassword

func (h *SHA512Hasher) SetPassword(plain string)

SetPassword sets a password

func (*SHA512Hasher) String

func (h *SHA512Hasher) String() string

type SHA512_224Hasher

type SHA512_224Hasher struct {
	Salt     *string
	Iter     *int
	Password *[]byte
}

SHA512_224Hasher hash password in SHA-512/224

func (*SHA512_224Hasher) Check

func (h *SHA512_224Hasher) Check(plain string) bool

Check if hashed password is equal stored password hash

func (SHA512_224Hasher) Code

func (h SHA512_224Hasher) Code() string

Code returns internal SHA-512/224 hasher code

func (*SHA512_224Hasher) Hash

func (h *SHA512_224Hasher) Hash(password string) []byte

Hash a password

func (*SHA512_224Hasher) SetPassword

func (h *SHA512_224Hasher) SetPassword(plain string)

SetPassword sets a password

func (*SHA512_224Hasher) String

func (h *SHA512_224Hasher) String() string

type SHA512_256Hasher

type SHA512_256Hasher struct {
	Salt     *string
	Iter     *int
	Password *[]byte
}

SHA512_256Hasher hash password in SHA-512/256

func (*SHA512_256Hasher) Check

func (h *SHA512_256Hasher) Check(plain string) bool

Check if hashed password is equal stored password hash

func (SHA512_256Hasher) Code

func (h SHA512_256Hasher) Code() string

Code returns internal SHA-512/256 hasher code

func (*SHA512_256Hasher) Hash

func (h *SHA512_256Hasher) Hash(password string) []byte

Hash a password

func (*SHA512_256Hasher) SetPassword

func (h *SHA512_256Hasher) SetPassword(plain string)

SetPassword sets a password

func (*SHA512_256Hasher) String

func (h *SHA512_256Hasher) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL