الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لماذا تشفير قيصر و فك التشفير بطئ جدا

بدأه ahmead24 في 13 مايو 2010 · 2 رد · 886 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

وجدت دالة تعمل تشفير للنصوص بطريقة قيصر و لكن عند تشفير 5 صفحات مكتوبة بالورد و محاولة فك تشفيرها وجدت ان الكود بطئ جدا فهل هناك طريقة لتعديل الكود التالى و تسريع الفك

دالة التشفير

static public string cipher(string txt1)

{

int k = 3;

int a = 0, b = 0;

string s = txt1;

string txt2="";

for (int i = 0; i < s.Length; i++)

{

a = (int)s;

b = a + k;

txt2 += (char)b;

}

return txt2;

}

دالة فك التشفير

static public string decipher(string txt1)

{

int k = 3;

int a = 0, b = 0;

string s = txt1;

string txt2 = "";

for (int i = 0; i < s.Length; i++)

{

a = (int)s;

b = a - k;

txt2 += (char)b;

}

return txt2;

}

هل يمكن تعديل الكود ليصبح اسرع و شكرا

#2

أنت تستخدم عملية إضافة الحروف على الـstring مباشرة لتشكيل النص النهائي:

txt2 += (char)b;

وهذه عملية مكلفة لأنك تنشي أوبجكت جديد عند كل عملية إضافة حرف. استخدم الـstringbuilder وهو كلاس مصمم لبناء النصوص حرفاً حرفاً. مثلاً للتشفير:

int k = 3;
            int a = 0, b = 0;
            string s = txt1;
            var txt2 = new StringBuilder();
            for (int i = 0; i < s.Length; i++)
            {

                a = (int)s;
                b = a + k;
                txt2.Append((char)b);

            }
            return txt2.ToString();
#3

اشكرك على سرعة الرد و قد قمت بتجربة الكود و اشتغل تمام الف شكر

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…