Documentation
¶
Overview ¶
Package random provides cryptographically secure random string generation in hex, base32, and base64 encodings.
Index ¶
- Variables
- func Element[T any](s []T) T
- func GenerateBase32EncodedString(ctx context.Context, length int) (string, error)
- func GenerateBase64EncodedString(ctx context.Context, length int) (string, error)
- func GenerateHexEncodedString(ctx context.Context, length int) (string, error)
- func GenerateRawBytes(ctx context.Context, length int) ([]byte, error)
- func MustGenerateHexEncodedString(ctx context.Context, length int) string
- func MustGenerateRawBytes(ctx context.Context, length int) []byte
- func RegisterGenerator(i do.Injector)
- type Generator
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var RandProviders = wire.NewSet( NewGenerator, )
RandProviders are what we offer to dependency injection.
Functions ¶
func GenerateBase32EncodedString ¶
GenerateBase32EncodedString generates a one-off value with an anonymous Generator.
func GenerateBase64EncodedString ¶
GenerateBase64EncodedString generates a one-off value with an anonymous Generator.
func GenerateHexEncodedString ¶
GenerateHexEncodedString generates a one-off value with an anonymous Generator.
Example ¶
package main
import (
"context"
"fmt"
"github.com/verygoodsoftwarenotvirus/platform/v2/random"
)
func main() {
s, err := random.GenerateHexEncodedString(context.Background(), 16)
if err != nil {
panic(err)
}
// Output is non-deterministic, but always 32 hex characters (16 bytes * 2)
fmt.Println(len(s))
}
Output: 32
func GenerateRawBytes ¶
GenerateRawBytes generates a one-off value with an anonymous Generator.
Example ¶
package main
import (
"context"
"fmt"
"github.com/verygoodsoftwarenotvirus/platform/v2/random"
)
func main() {
b, err := random.GenerateRawBytes(context.Background(), 8)
if err != nil {
panic(err)
}
fmt.Println(len(b))
}
Output: 8
func MustGenerateHexEncodedString ¶
MustGenerateHexEncodedString generates a one-off value with an anonymous Generator.
func MustGenerateRawBytes ¶
MustGenerateRawBytes generates a one-off value with an anonymous Generator, but does not return an error.
func RegisterGenerator ¶
RegisterGenerator registers a Generator with the injector.
Types ¶
type Generator ¶
type Generator interface {
GenerateHexEncodedString(ctx context.Context, length int) (string, error)
GenerateBase32EncodedString(context.Context, int) (string, error)
GenerateBase64EncodedString(context.Context, int) (string, error)
GenerateRawBytes(context.Context, int) ([]byte, error)
}
Generator should generate random strings securely.
func NewGenerator ¶
func NewGenerator(logger logging.Logger, tracerProvider tracing.TracerProvider) Generator
NewGenerator builds a new Generator.