public void MakeSaltedHash_EmptySource_HashLength() { // Arrange IHasher hasher = new Sha256Hasher(); string source = ""; int expectedHashLength = 88; // Act int actualHashLength = hasher.MakeSaltedHash(source).Length; // Assert Assert.AreEqual(expectedHashLength, actualHashLength); }
public void VerifySaltedHash_ComputedMatching_Verified() { // Arrange IHasher hasher = new Sha256Hasher(); string source = "s3cr37p455w0rd!7ru57n01"; string hash = hasher.MakeSaltedHash(source); // Act bool isVerified = hasher.VerifySaltedHash(source, hash); // Assert Assert.IsTrue(isVerified); }
public void MakeSaltedHash_LongSource_HashLength() { // Arrange IHasher hasher = new Sha256Hasher(); string source = "I can write anything I want here and the test will pass because all SHA256 hashes have the same length"; int expectedHashLength = 88; // Act int actualHashLength = hasher.MakeSaltedHash(source).Length; // Assert Assert.AreEqual(expectedHashLength, actualHashLength); }
public void VerifySaltedHash_ComputedMismatching_NotVerified() { // Arrange IHasher hasher = new Sha256Hasher(); string source = "s3cr37p455w0rd!7ru57n01"; string hash = hasher.MakeSaltedHash(source); hash = (hash[1] == 'A' ? 'B' : 'A') + hash.Substring(1, hash.Length - 1); // Corrupt the hash // Act bool isVerified = hasher.VerifySaltedHash(source, hash); // Assert Assert.IsFalse(isVerified); }