Beispiel #1
0
        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, "Хэши одинаковых паролей совпали: скорее всего, не используется соль");
        }
Beispiel #2
0
        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, "Не работает проверка по хэшу");
        }
Beispiel #3
0
        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], "Хэш совпадает с солью");
        }
Beispiel #4
0
        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, "С хэшем не сохранилась соль");
        }
 public FulfillRegistrationRequestCommand(StoreDbContext db, PasswordFormatPolicy passwordPolicy, PasswordHashPolicy hashPolicy)
 {
     _db                 = db;
     _passwordPolicy     = passwordPolicy;
     _passwordHashPolicy = hashPolicy;
 }