public void GetFixedXOR_GivenHexStrings_GivesGoodXOR() { // Arrange const string STRING1 = "1c0111001f010100061a024b53535009181c"; const string STRING2 = "686974207468652062756c6c277320657965"; const string EXPECTED = "746865206b696420646f6e277420706c6179"; var convertor = new ConvertHex(); byte[] str1AsBytes = convertor.HexStringToByteArray(STRING1); byte[] str2AsBytes = convertor.HexStringToByteArray(STRING2); // Act var result = _fixedXOR.XOR(str1AsBytes, str2AsBytes); // Assert result.Should().Be(EXPECTED); }
public void Unencrypt_GivenHexEncodedString_ReturnUnEncryptedPlaintext() { // Arrange var secretHex = "1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736"; var expected = "Cooking MC's like a pound of bacon"; var convertor = new ConvertHex(); var secretHexBytes = convertor.HexStringToByteArray(secretHex); // Act ResultItem res = _xorCipher.GetUnencryptedText(secretHexBytes); // Assert res.Text.Should().Be(expected); }
public ResultItem CrackXOR(string[] xoredHexString) { return(xoredHexString.Select(line => _xorCipher.GetUnencryptedText(_convertHex.HexStringToByteArray(line))) .OrderByDescending(i => i.Score) .First()); }