Кодирование и декодирование Base64 не работает

Я смотрел много уроков везде, и все они говорят, что это должно работать, но это не так.

Я хочу ввести "encode RandomText", а затем он должен закодировать "RandomText" в Base64, и если я наберу "decode [theEncodedText]" он должен декодировать из Base64 и дать мне "RandomText". Я сделал все, что мог, но все равно не работает.

Проверьте мой полный код:

    static public void Write(string text, int ms)
    {
        foreach (char c in text)
        {
            Thread.Sleep(ms);
            Console.Write(c);
        }
    }
    static public string Encode(string text)
    {
        byte[] encodedBytes = ASCIIEncoding.ASCII.GetBytes(text);
        return Convert.ToBase64String(encodedBytes);
    }
    static public string Decode(string text)
    {
        byte[] decodedBytes = Convert.FromBase64String(text2);
        return ASCIIEncoding.ASCII.GetString(decodedBytes);
    }
    static void Main(string[] args)
    {
        string input = "";
        while (input != "exit")
        {
            Console.ForegroundColor = ConsoleColor.White;
            Write("Input:> ", 10); Console.ForegroundColor = ConsoleColor.Gray;
            input = Console.ReadLine().ToLower().Trim();

            if (input.StartsWith("encode"))
            {
                try
                {
                    string toEncode = input.Substring(7);
                    Write(Encode(toEncode) + "\n\n", 10);
                }
                catch
                {
                    Write("Please enter the text to encode!\n\n", 10);
                }
            }
            else if (input.StartsWith("decode"))
            {
                try
                {
                    string toDecode = input.Substring(7);
                    Write(Decode(toDecode) + "\n\n", 10);
                }
                catch
                {
                    Write("The entered text is either missing or is not encoded!\n\n", 10);
                }                  
            }
            else
            {
                if (input != "" && input != "exit")
                {
                    Write("Invalid command.\n\n", 10);
                }
                else
                {
                }
            }
            Console.ForegroundColor = ConsoleColor.White;
        }
    }

person CryShana    schedule 29.03.2013    source источник


Ответы (1)


Base64 чувствителен к регистру. Вы снижаете кейс на ваших входных данных. Поэтому это не сработает.

person Brannon    schedule 29.03.2013