public void Must_produce_different_hashed_for_same_passwords() { // Arrange // Act var policy = new PasswordHashPolicy(); var hash1 = policy.Apply(PASSWORD); var hash2 = policy.Apply(PASSWORD); // Assert Assert.AreNotEqual(hash1, hash2, "Хэши одинаковых паролей совпали: скорее всего, не используется соль"); }
private User CreateUser(RegistrationRequest request, string password) { var passwordHash = _passwordHashPolicy.Apply(password); var user = new User { Email = request.Email, PasswordHash = passwordHash }; return(user); }
public void Must_verify_password_by_hash() { // Arrange var policy = new PasswordHashPolicy(); var hash = policy.Apply(PASSWORD); // Act var result = policy.Check(PASSWORD, hash); // Assert Assert.IsTrue(result, "Не работает проверка по хэшу"); }
public void Must_store_salt_with_hash() { // Arrannge // Act var policy = new PasswordHashPolicy(); var hash = policy.Apply(PASSWORD); // Assert var split = hash.Split(PasswordHashPolicy.DELIMITER); Assert.AreEqual(2, split.Length, "С хэшем не сохранилась соль"); Assert.AreNotEqual(split[0], split[1], "Хэш совпадает с солью"); }
public void Must_create_hash() { // Arrannge // Act var policy = new PasswordHashPolicy(); var hash = policy.Apply(PASSWORD); // Assert Assert.IsNotNull(hash, "Хэш не создался"); Assert.AreNotEqual(PASSWORD, hash, "Вместо хэша вернулся пароль"); var split = hash.Split(PasswordHashPolicy.DELIMITER); Assert.AreEqual(2, split.Length, "С хэшем не сохранилась соль"); }