আমি কীভাবে একটি বেস 64 এনকোডযুক্ত স্ট্রিংটি ডিকোড করব?


258

আমি নিম্নলিখিত বেস 64 স্ট্রিংটি "ডিকোড" করার চেষ্টা করছি:

OBFZDTcPCxlCKhdXCQ0kMQhKPh9uIgYIAQxALBtZAwUeOzcdcUEeW0dMO1kbPElWCV1ISFFKZ0kdWFlLAURPZhEFQVseXVtPOUUICVhMAzcfZ14AVEdIVVgfAUIBWVpOUlAeaUVMXFlKIy9rGUN0VF08Oz1POxFfTCcVFw1LMQNbBQYWAQ ==

আমি নিজেই স্ট্রিং সম্পর্কে এটি জানি:

  1. মূল স্ট্রিংটি নিম্নলিখিত কোডের মাধ্যমে প্রথমে পাস করা হয়েছে:

    private static string m000493(string p0, string p1)
    {
        StringBuilder builder = new StringBuilder(p0);
        StringBuilder builder2 = new StringBuilder(p1);
        StringBuilder builder3 = new StringBuilder(p0.Length);
        int num = 0;
    Label_0084:
        while (num < builder.Length)
        {
            int num2 = 0;
            while (num2 < p1.Length)
            {
                if ((num == builder.Length) || (num2 == builder2.Length))
                {
                    MessageBox.Show("EH?");
                    goto Label_0084;
                }
                char ch = builder[num];
                char ch2 = builder2[num2];
                ch = (char)(ch ^ ch2);
                builder3.Append(ch);
                num2++;
                num++;
            }
        }
        return m0001cd(builder3.ToString());
    }
    

    কোডটির p1অংশটি স্ট্রিং " _p0lizei." বলে মনে করা হচ্ছে ।

  2. এটি নিম্নলিখিত কোড দ্বারা একটি বেস 64 স্ট্রিং রূপান্তরিত হয়:

    private static string m0001cd(string p0)
    {
        string str2;
        try
        {
            byte[] buffer = new byte[p0.Length];
            str2 = Convert.ToBase64String(Encoding.UTF8.GetBytes(p0));
        }
        catch (Exception exception)
        {
            throw new Exception("Error in base64Encode" + exception.Message);
        }
        return str2;
    }
    

প্রশ্নটি হল, আমি বেস 64 স্ট্রিংটি কীভাবে ডিকোড করব যাতে আমি জানতে পারি যে মূল স্ট্রিংটি কী?


1
আমি জানি লিগ্যাসি স্টাফ সমর্থন করার সময় "কেন" সাধারণত অপ্রাসঙ্গিক, তবে আমার জানা দরকার ... মূল স্ট্রিং বেস 64 কেন প্রথম স্থানে এনকোড করা হয়েছিল?! ?? বেস 64 সাধারণত এক্সএমএল বা জেএসওনে এম্বেড করার জন্য বাইনারিটিকে একটি পাঠ্য ভিত্তিক পোর্টেবল সংস্করণে রূপান্তর করতে ব্যবহৃত হয় - সম্ভবত কোনও ওয়েব পরিষেবা স্তর জুড়ে সরানোর জন্য, স্ট্রিংটিকে এনকোড স্ট্রিংয়ে রূপান্তর করার জন্য নয়।
ব্যারিপিকার

@ ব্যারি - আরও পুরানো পোস্টে আপনার পুরানো প্রশ্নের উত্তর দিতে ... আমি এখানে এসেছি কারণ আমার এইচটিটিপি অনুমোদনের শিরোনামের সাথে ডিল করা দরকার যার জন্য বেস 64 এনকোডড স্ট্রিং দরকার
ফ্রিফালার

উত্তর:



85

m000493পদ্ধতি XOR যাও এনক্রিপশন কোন ধরণের সঞ্চালন বলে মনে হয়। এর অর্থ হ'ল পাঠটি এনক্রিপ্ট করা এবং ডিক্রিপ্ট করার জন্য একই পদ্ধতি ব্যবহার করা যেতে পারে। আপনাকে যা করতে হবে তা হ'ল বিপরীত m0001cd:

string p0 = Encoding.UTF8.GetString(Convert.FromBase64String("OBFZDT..."));

string result = m000493(p0, "_p0lizei.");
//    result == "gaia^unplugged^Ta..."

সঙ্গে return m0001cd(builder3.ToString());পরিবর্তিত return builder3.ToString();


আপনাকে ধন্যবাদ, আমি কেবল এটিই উত্তরটি খুঁজছিলাম। আমি আমার চুল টানতে কাছাকাছি ছিলাম: পি
রিকার্ড

48
@ রিকার্ড: আপনি একটি উত্তর "গ্রহণ" করতে পারেন যা বাম পাশের উত্তরের পাশে চেকমার্কটি ক্লিক করে আপনার সমস্যার সমাধান করে।
dtb

3
দয়া করে এগুলির কোনওটিকে "এনক্রিপশন" বা "ডিক্রিপশন" হিসাবে উল্লেখ করবেন না। "এনক্রিপশন" এবং "এনকোডিং" এর মধ্যে পার্থক্য করার বিষয়টি করুন point
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.