Pseudo randomly combines words from n dictionary streams
based on a configurable seed.
Seeds are constructed of calculations based off todays date.
Supported operators are +, -, *, /, ^ (pow) and parens.
Integer date values can be referenced by .NET date formatting.
For example:
yyyyMMdd * 2 + 5
On aug. 5th 2020 the seed would be 40401615, calculated from
20200805 * 2 + 5. From the sample dictionaries included,
the password would then be "small-feeling".
The random numbers selected from the seed can be taken
from a range further from the start by adding a salt string.
For instance, by adding "salt" to the generation of the
password above, we would get "awesome-head".
Further, a suffix can be configured for the password. By setting the suffix to "SFX", the previous password would now be "awesome-head-SFX". The suffix can be further customized by a "suffix formula" similar to the seed formula. By setting it to "MMdd", the password would now be "awesome-head-SFX85".
The sample web site exposes passwords to a select Azure AD group.
Secrets should be set locally with dotnet user-secrets set
or
by using Azure KeyVault etc. in production.
Implement the IStreamSource
interface from PasswordGenerator
and follow the "simple plugin with no dependencies" instructions in
this Microsoft .NET tutorial