Exemple #1
0
        public void Challenge3()
        {
            string input          = "1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736";
            var    expectedKey    = (byte)88;
            var    expectedString = "Cooking MC's like a pound of bacon";
            var    hexString      = new HexString(input);
            var    decryptor      = new SingleByteXorCracker(new BigramCalculator());

            var actualKey      = decryptor.CrackKey(hexString);
            var decryptedBytes = XorUtil.Xor(hexString.Bytes.ToArray(), new[] { actualKey });
            var actualString   = System.Text.Encoding.ASCII.GetString(decryptedBytes);

            Assert.AreEqual(expectedKey, actualKey);
            Assert.AreEqual(expectedString, actualString);
        }
Exemple #2
0
        public void Callenge6()
        {
            var expectedString    = "";//Set1Data.Challenge6Solution;
            var expectedKey       = System.Text.Encoding.ASCII.GetBytes("Terminator X: Bring the noise");
            var input             = Set1Data.Challenge6Input.Replace("\r\n", string.Empty);
            var encryptedData     = Convert.FromBase64String(input);
            var singleByteCracker = new SingleByteXorCracker(new BigramCalculator());
            var cracker           = new MultiByteXorCracker(singleByteCracker);

            var actualKey     = cracker.CrackKey(encryptedData);
            var decryptedData = XorUtil.Xor(encryptedData, actualKey);
            var actualString  = System.Text.Encoding.ASCII.GetString(decryptedData);

            Assert.AreEqual(expectedString, actualString);
            Assert.AreEqual(expectedKey, actualKey);
        }
Exemple #3
0
        public void Challenge4()
        {
            var expectedString = "Now that the party is jumping\n";
            var expectedKey    = 53;
            var strings        = Set1Data.Challenge4Input.Split(new[]
            {
                '\n', '\r'
            }, StringSplitOptions.RemoveEmptyEntries);

            var hexStrings = strings.Select(s => new HexString(s)).ToArray();
            ITextScoreCalculator textScoreCalculator = new BigramCalculator();
            var cracker = new SingleByteXorCracker(textScoreCalculator);
            int index;
            var actualKey = cracker.CrackKey(hexStrings, out index);

            var decrytedBytes = XorUtil.Xor(hexStrings[index].Bytes.ToArray(), new[] { actualKey });
            var actualString  = System.Text.Encoding.ASCII.GetString(decrytedBytes);

            Assert.AreEqual(expectedString, actualString);
            Assert.AreEqual(expectedKey, actualKey);
        }