(20-09-19, 02:54 AM)kiki كتب :(19-09-19, 05:49 PM)maxruined كتب :السلام عليكمخطرت فى بالي فكره برنامج تشفير بسيط بس فى الحقيقه لما جيت انفذ البرنامج معرفتش اعمله ازاىوالفكره كالاتى :-فكره البرنامج انك تدخل اي جملة مثلا كلمة MAXوالمفروض تبقي بعد التشفير كدا 13124والفكره ببساطه ان اخد كل حرف مع القيمه المساويه له بمعني اخرA B C D E F G H I J K L M N O P Q R S T U V W X Y Z26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1رتبه الحرف M هى 13 وربته الحرف A هى 1 وربته الحرف X هى 24 وبكدا اصبح الاسم بعد التشفير = 13124
بتمني من اى حد من اساتذتنا الكبار يساعدونى فى فكره عمل برنامج التشفير دا
ولكم جزيل الشكر
لتبسيط الامور عليك وجعل الامور ابسط معكفهنا يجب النظر الى نقطة مهمة جداً وهى التالى
فى البداية يجب النظر فى الاعداد لعدد الاحرفحتل الاجمالى هو عبارة عن آحاد او هى عشرات
طيب بعد النظرفان العدد يتجاوز الـ 9 ولا يزيد عن 99فاصبح الاجمالى هنا هو عشرات
بعد اخذ بهذا الاعتبار فناتى للخطوة وهو توحيد الترقيم ليكون جميعهم يحمل عشراتبحيث رقم 1 يصبح 01 ليكون العد من 01 الى 09 أو يفضل ان يكون 00 : 09وبما اننا قلنا سنبداء العدد من 00 يعنى سيكون الاجمالى بنهاية العد هو 25ليكون الشكل النهائي 01 02 03 : 25
طيب بعد اتمام هذه النظرية ايه العامل المستفيد منه هناالعامل الايجابي هنا هو عند تحويل كلمة كمثال MAX الى 130124هيتم عمل Split للقيمة كل رقمين فهنا هنفهم ان 13 تعنى M و 01 تعنى Aبكده مش هتحس باى متاهة عند تحويل الاحرف التاليةA B C D E F G H I Jالى ان تكون عبارة عن9 8 7 6 5 4 3 2 1 0لان الشكل سيصبح09 08 07 06 05 04 03 02 01 00
طيب هبسط عليك الامر بعد الشرح ده بالكود للاحرف الانجليزية مع المسافةفكل ما عليك اذا فهمت الشرح الذى ذكرته ان تضيف الاحرف العربية و الارقاموتقوم باضافتها بالرد هنا منها ليستفاد الجميع وايضاً منها اعلم ان الصورة وضحت والكود مبسط معك
انا حاولت ابسط الكود واجعله بسيط جداً كان بامكان اختصار الكود الذى ساضعه وابسط الامور اكثرولكن قد لا تفهم كيف تم الامر ووضيفة الكود ولتبسيط الامور وسهولة فهم كل سطر من الكود
اليك الكودفى البداية قم باضافة التالى خارج نطاق اى حدثكود :
//تعريف الاحرف والارقام التى يتم التحويل بينهم
string[] abc = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", " " };
string[] num = new string[] { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26" };بعد ذلك قم باضافة التالىكود :
//كود التشفير
private string StNb(string text)
{
text = text.ToUpper();
string mykey = null;
for (int a = 0; a < text.Count(); a++)
for (int b = 0; b < abc.Count(); b++)
if (text.Substring(a, 1) == abc[b])
mykey += text.Substring(a, 1).Replace(abc[b], num[b]);
return mykey;
}
//كود فك التشفير
private string NbSt(string text)
{
string mykey = null;
for (int a = 0; a < (text.Count() / 2); a++)
for (int b = 0; b < num.Count(); b++)
if (text.Substring(a * 2, 2) == num[b])
mykey += text.Substring(a * 2, 2).Replace(num[b], abc[b]);
return mykey.ToLower();
}الان تعال عن حدث التنفيذ بتنفيذ التالى للتشفيركود :
textBox2.Text = StNb(textBox1.Text);وفى حدث فك التشفير كل ما عليك تنفيذ التالىكود :
textBox3.Text = NbSt(textBox2.Text);
للتوضيح انا جعلت اى احرف تكتب بالانجليزية اذا كانت كبيرة او صغيرة سيقوم بتنفيذ الامرواذا كنت تريد استقرار الامر بحيث الحرف الكبير يبقي كبير والعكس فكل ما عليك اضافة الاحرف الصغيرةوازالة كلاً من التالى طبعاً مع معالجة وظيفتهمPHP كود :
.ToLower()
.ToUpper()
تمام اخوى اشتغل وزى الفل
بس فيه مشكلة صغيره ان لو فيه اي كلمه مساوية لرتبه الاحاد بيجبلي جمبه صفر
انا كنت عايز الغي الصفر دا .. عمتاً جارى العمل على الكود بتاعك
فيه كمان حاجه ان هو بيعبر عن ال Space برتبه 26 ازاى ممكن اغير قيمه ال Space لاي قيمه انا عايزها ؟؟
مره تانى الف مليون شكر
(20-09-19, 07:04 PM)ابراهيم ايبو كتب :السلام عليكم اخي الكريم
من حيث الفكرة جيدة ولكن لاحظ انك لم تأخذ في الاعتبار اذا كان الاكواد تحتوي على اشارات ورموز خاصة بلغة السي شارب
والاهم من كل ذلك هو الارقام التي ستكون مشابهة للتشفير وعند فك التشفير ستكون المشكلة
اذا كيف ستفرق بين الرقم الغادي الذي هو من ضمن الكود والرقم الذي يمثل التشفير
المسالة تحتاج الى دراسة اعمق وهي اشبه بانشاء لغة يفهمها كود التشفير وكود فك التشفير
بعتذر اخوى ولكن مش فاهم قصدك كويس ياريت توضح اكتر
