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()); }
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); }