diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2020-08-10 21:35:58 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2020-08-10 21:35:58 +0200 |
| commit | 2cfee78597971b2e3e7e612eb9d7e8805e1aef85 (patch) | |
| tree | b939d48347c7fff48d2a51761cb546c3b9ac6ec0 /src/server/Utilities/Random.cs | |
| parent | 8614d18522441543e08c37c68121fed1fa8d6ae7 (diff) | |
| download | dough-2cfee78597971b2e3e7e612eb9d7e8805e1aef85.tar.xz dough-2cfee78597971b2e3e7e612eb9d7e8805e1aef85.zip | |
add signing credentials
Diffstat (limited to 'src/server/Utilities/Random.cs')
| -rw-r--r-- | src/server/Utilities/Random.cs | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/server/Utilities/Random.cs b/src/server/Utilities/Random.cs new file mode 100644 index 0000000..390a69c --- /dev/null +++ b/src/server/Utilities/Random.cs @@ -0,0 +1,59 @@ +using System; +using System.Security.Cryptography; +using System.Text; + +namespace Dough.Utilities +{ + public static class Random + { + private const string RandomStringCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + private static readonly char[] RandomPasswordCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".ToCharArray(); + + public static string String(int length) + { + var stringChars = new char[length]; + var random = new System.Random(); + + for (var i = 0; i < stringChars.Length; i++) + stringChars[i] = RandomStringCharacters[random.Next(RandomStringCharacters.Length)]; + + return new string(stringChars); + } + + public static string Password(int length) + { + var data = new byte[4*length]; + using (var crypto = new RNGCryptoServiceProvider()) + { + crypto.GetBytes(data); + } + var result = new StringBuilder(length); + for (var i = 0; i < length; i++) + { + var rnd = BitConverter.ToUInt32(data, i * 4); + var idx = rnd % RandomPasswordCharacters.Length; + result.Append(RandomPasswordCharacters[idx]); + } + + return result.ToString(); + } + + public static int Number(int length) + { + var random = new System.Random(); + return random.Next(0, length); + } + + public static string NumericalString(int length) + { + var stringChars = new char[length]; + var random = new System.Random(); + + for (var i = 0; i < stringChars.Length; i++) + stringChars[i] = RandomStringCharacters[random.Next(RandomStringCharacters.Length)]; + + return new string(stringChars); + } + + } +}
\ No newline at end of file |
