tokengen

package module
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2017 License: MIT Imports: 5 Imported by: 0

README

tokengen

Build Status Coverage Status GoDoc Go Report Card

tokengen is small, simple and flexible token generator. tokengen allows you to specify your character set and token length, and as such is ideally suited for generating secure tokens in any language, random urls, passwords, and access tokens.

tokengen relies on the crypto/rand package, mapping values evenly to the character set given, disregarding any values out of range.


func GenerateOneTimePassword() (string, error){
    tokengen, err := tokengen.New(tokengen.DefaultCharset, 40)
    if err != nil {
        return tokengen, err
    }
    return tokengen.GenerateToken()
}

Please make sure that the character set and length of token you choose are large enough to ensure a reasonable amount of entropy.

Documentation

Overview

Package tokengen provides a simple way to generate secure tokens of any length from any character set. Allowing for easy password, url, and token generation.

Index

Constants

View Source
const (
	// Base62 [A-Za-z0-9]
	Base62 = `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`

	// Base64 [A-Za-z0-9+/]
	Base64 = Base62 + `+/`

	// DefaultCharset Base62
	DefaultCharset = Base62
)

Variables

This section is empty.

Functions

This section is empty.

Types

type TokenProvider

type TokenProvider interface {
	GenerateToken() (string, error)
}

TokenProvider is a simple interface for abstracting token provisioning.

type Tokengen

type Tokengen struct {
	// contains filtered or unexported fields
}

Tokengen implements TokenProvider and contains the configuration for generating cryptographically secure tokens.

func New

func New(charset string, length int) (Tokengen, error)

New get a new tokengen

func (Tokengen) GenerateToken

func (t Tokengen) GenerateToken() (string, error)

GenerateToken will provide a string of letters, picked at random from the given character set, with even distribution of runes from the set GenerateToken relies on the crypto/rand package for it's random data source, rather than the math package, so is ideally suited for secure uses such as password, token and url generation.

 func GenerateOneTimePassword() (string, error){
 	tokengen, err := tokengen.New(tokengen.DefaultCharset, 12)
	if err != nil {
		return ``, err
	}
 	return tokengen.GenerateToken()
 }

Jump to

Keyboard shortcuts

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