private static byte[] Encrypt(byte[] input, uint key)
        {
            // pad if input length is not multiple of 8
            var paddedLength = (input.Length + 8) & ~0b111;
            var paddedInput  = new byte[paddedLength];

            Buffer.BlockCopy(input, 0, paddedInput, 0, input.Length);

            var blowfish = new Blowfish(GetKeyBytes(key));

            blowfish.Encipher(paddedInput, 0, paddedInput.Length);

            return(paddedInput);
        }