public static byte[] Encode(string input) { if (!referenceTable.IsValidString(input)) { throw new Exception("invalid string. use char from table" + input); } string eightPadBitbinary = ""; foreach (var item in input.ToCharArray()) { eightPadBitbinary += hex2binaryWithSixPadding(referenceTable[item]); } while (eightPadBitbinary.Length % 8 != 0) { eightPadBitbinary = "0" + eightPadBitbinary; } var eightPadBitbinaryArray = Enumerable.Range(0, eightPadBitbinary.Length / 8). Select(pos => Convert.ToByte(eightPadBitbinary.Substring(pos * 8, 8), 2) ).ToArray(); return(eightPadBitbinaryArray); }