public ResultItem GetUnencryptedText(byte[] bytes)
        {
            var tests = new List <ResultItem>();

            foreach (byte keyByte in Enumerable.Range(0, 128).Select(c => BitConverter.GetBytes((char)c)[0]))
            {
                var text = "";

                foreach (byte hexByte in bytes)
                {
                    var num = _fixedXOR.ByteXOR(keyByte, hexByte);
                    text += Convert.ToChar(num);
                }

                var score = ScoreString(text);

                tests.Add(new ResultItem
                {
                    KeyChar = Convert.ToChar(keyByte),
                    KeyByte = keyByte,
                    Text    = text,
                    Score   = score
                });
            }

            return(tests.OrderByDescending(i => i.Score).First());
        }
Esempio n. 2
0
        private List <byte> DecodeForOneLine(byte[] lineBytes, byte[] encryptionKeyBytes)
        {
            var toReturn = new List <byte>();

            for (int j = 0; j < lineBytes.Length; j++)
            {
                toReturn.Add(_fixedXOR.ByteXOR(lineBytes[j], encryptionKeyBytes[j]));
            }

            return(toReturn);
        }