public static async Task Main(string[] args) { Console.WriteLine("============================"); Console.WriteLine("Pwned Passwords Checker Demo"); Console.WriteLine("============================"); Console.WriteLine("Enter the password to check:"); var password = Console.ReadLine(); var pwnedPasswords = new PwnedPasswords(); var count = await pwnedPasswords.PwnedCountAsync(password); var isPwned = count > 0; if (isPwned) { Console.WriteLine($"Oh no — pwned! This password has been seen {count} times before."); } else { Console.WriteLine("Good news — no pwnage found!"); } }
public async Task <IActionResult> AddOrEditPayPal([Bind("Name,Email,Password")] PaypalAccount paypal, string Id) { paypal.UserId = Int32.Parse(AuthUserId); if (!ModelState.IsValid) { return(PartialView("Views/Forms/AddOrEditPayPal.cshtml", paypal)); } paypal.Compromised = PwnedPasswords.IsPasswordPwnedAsync(paypal.Password, new CancellationToken(), null).Result == -1 ? 0 : 1; paypal.Password = _encryptionService.Encrypt(AuthUserId, paypal.Password); if (!Id.Equals("0")) { paypal.Id = Int32.Parse(dataProtectionHelper.Decrypt(Id, "QueryStringsEncryptions")); } if (paypal.Id == 0) { await _apiService.CreateUpdateData <PaypalAccount>(paypal); } else { await _apiService.CreateUpdateData <PaypalAccount>(paypal, paypal.Id); } ClearCache(); return(RedirectToAction("List")); }
public string HibpCheck(string password) { var hibpResult = PwnedPasswords.IsPasswordPwnedAsync(password, new CancellationToken(), null).Result; if (hibpResult <= 0) { return("Your password is OK :)"); } else { return($"Your password have been pwned {hibpResult}. Please, change your password."); } }
protected override ValidationResult IsValid(object value, ValidationContext validationContext) { string password = (string)value; var isPwned = PwnedPasswords.IsPasswordPwnedAsync(password, new CancellationToken(), null).Result; if (isPwned != -1) { return(new ValidationResult($"Selected password have been pwned {isPwned} times. Enter another one!", new[] { validationContext.MemberName })); } else { return(ValidationResult.Success); } }
public async Task <IActionResult> AddOrEditLoginData(LoginDataViewModel loginDataView, string Id) { if (!ModelState.IsValid) { return(PartialView("Views/Forms/AddOrEditLoginData.cshtml", loginDataView)); } var loginData = new LoginData { Id = 0, Name = loginDataView.Name, Login = loginDataView.Login, Email = loginDataView.Email, Website = loginDataView.Website, Compromised = PwnedPasswords.IsPasswordPwnedAsync(loginDataView.Password, new CancellationToken(), null).Result == -1 ? 0 : 1, Password = _encryptionService.Encrypt(AuthUserId, loginDataView.Password) }; loginData.UserId = Int32.Parse(AuthUserId); if (!Id.Equals("0")) { loginData.Id = Int32.Parse(dataProtectionHelper.Decrypt(Id, _config["QueryStringsEncryptions"])); } if (loginData.Id == 0) { await _apiService.CreateUpdateData <LoginData>(loginData); } else { await _apiService.CreateUpdateData <LoginData>(loginData, loginData.Id); } ClearCache(); OnDataEdit(loginData); return(RedirectToAction("List")); }