Skip to content

About

This DI friendly library provides the ability to generate strong cryptographically random passwords that meet the OWASP requirements (length, lower case, upper case, numeric, and special characters).

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ci

Overview

This DI friendly library provides the ability to generate strong cryptographically random passwords that meet the OWASP requirements (length, lower case, upper case, numeric, and special characters).

Requirements

  • .NET Standard 2.1 - for Span API, which does NOT allow usage from .NET Framework, sorry

Usage

void ConfigureServices(IServiceCollection services)
{
    services.AddPasswordGenerator();

    // or configure options...
    services.AddPasswordGenerator(options => options
        // values shown here are the defaults
        .SetMaxEnumerations(100)
        .SetMaxAttempts(10000)
        .SetLengthRange(16, 64)
        .SetMaxConsecutiveIdenticalCharacters(2)
        .SetMinLowercaseCharacters(1)
        .SetMinUppercaseCharacters(1)
        .SetMinNumericCharacters(1)
        .SetMinSpecialCharacters(1)
        .SetSpecialCharacters("!;#$%&()*+,-./:;<=>?@[]^_`{|}~")
    );

    // or configure from appsettings...
    services.Configure<PasswordGeneratorOptions>(
        configuration.GetSection("PasswordGenerator"));
}

void SimpleUsage(IPasswordGenerator generator)
{
    var password = generator.Generate();
}

void UsageWithSpan(IPasswordGenerator generator)
{
    Span<char> password = stackalloc char[16];
    generator.Generate(password);
}

void UsageWithCustomOptions(IPasswordGenerator generator)
{
    var options = new PasswordGeneratorOptions
    {
        // ...
    };
    var password = generator.Generate(options);
}

void UsageWithOptionsConfigurator(IPasswordGenerator generator)
{
    var password = generator.Generate(options =>
    {
        // ...
    });
}

void UsageWithEnumerable(IPasswordGenerator generator)
{
    var passwords = generator.Take(5);
}

void UsageWithoutDI()
{
    // all other variants (span, options, enumerable, etc) are available
    var password = PasswordGenerator.Default.Generate();
}

Project

License

NCode.PasswordGenerator is licensed under the Apache License 2.0.

About

This DI friendly library provides the ability to generate strong cryptographically random passwords that meet the OWASP requirements (length, lower case, upper case, numeric, and special characters).

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages