Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private async void Form_Load(object sender, System.EventArgs e)
- {
- otp = new OneTimePassword(txtSecret.Text);
- tmrUpdate_Tick(null, null);
- for (int timeStep = 30; timeStep < 200; timeStep++)
- {
- var secret = GetRandomSecretKey();
- var otpGenerator = new OneTimePassword(secret) { Algorithm = OneTimePasswordAlgorithm.Sha512, Digits = 6, TimeStep = timeStep };
- var sp = Stopwatch.StartNew();
- Debug.WriteLine($"TimeStep: {timeStep}, Key: {secret}, Started: {DateTime.Now.ToString("hh:mm:ss.fff")}");
- var code = otpGenerator.GetCode();
- var isCodeValid = true;
- while (isCodeValid)
- {
- await Task.Delay(1000);
- var otpVerfier = new OneTimePassword(secret) { Algorithm = OneTimePasswordAlgorithm.Sha512, Digits = 6, TimeStep = timeStep };
- isCodeValid = otpVerfier.IsCodeValid(code);
- var wrongResult = (sp.Elapsed.TotalSeconds > timeStep) && isCodeValid;
- Debug.WriteLine($"ValidCode: {isCodeValid}, {sp.Elapsed}{(wrongResult ? $", Not good {timeStep}" : "")}");
- }
- Debug.WriteLine($"TimeStep: {timeStep}, Key: {secret}, Ended: {DateTime.Now.ToString("hh:mm:ss.fff")}");
- }
- }
- Random _random = new Random();
- char GetRandomLetter()
- {
- // This method returns a random lowercase letter.
- // ... Between 'a' and 'z' inclusize.
- int num = _random.Next(0, 26); // Zero to 25
- char let = (char)('a' + num);
- return let;
- }
- string GetRandomSecretKey()
- {
- var firstSet = new string(new char[] { GetRandomLetter(), GetRandomLetter(), GetRandomLetter(), GetRandomLetter() });
- var secondSet = new string(new char[] { GetRandomLetter(), GetRandomLetter(), GetRandomLetter(), GetRandomLetter() });
- var thridSet = new string(new char[] { GetRandomLetter(), GetRandomLetter(), GetRandomLetter(), GetRandomLetter() });
- var fourthSet = new string(new char[] { GetRandomLetter(), GetRandomLetter(), GetRandomLetter(), GetRandomLetter() });
- return string.Join(" ", firstSet, secondSet, thridSet, fourthSet);
- }
Add Comment
Please, Sign In to add comment