コード例 #1
0
        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!");
            }
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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);
            }
        }
コード例 #5
0
        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"));
        }