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

نقاش حول خوارزمية تشفير بسيطة

بدأه MouhcineFD في 10 نوفمبر 2013 · 10 رد · 739 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هدا هو التطبيق الدي اتكلم عليه

اعطيته اسم عضويتي MouhcineFD

فقام بتحويله الى

__--_-_-___-_-_____--__-____-__-___-___-___-_--_____---____-_---__-__--___-___--

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

فهل يمكن اعتبار هده التطبيق ببرنامج تشفير ؟؟؟

تم تعديل هذه المشاركة بواسطة MouhcineFD في 10 نوفمبر 2013 في 03:40

#2
MouhcineFD كتب:

هدا هو التطبيق الدي اتكلم عليه

اعطيته اسم عضويتي MouhcineFD

فقام بتحويله الى

__--_-_-___-_-_____--__-____-__-___-___-___-_--_____---____-_---__-__--___-___--

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

فهل يمكن اعتبار هده التطبيق ببرنامج تشفير ؟؟؟

أعتقد أن هذا النوع من التشفير (إن صحت تسميته كذلك) قريب جدا من الـ morse code.

ضع لنا خوارزميتك أو فكرة التشفير لكي نقدم لك تفاصيلا أكثر.

 

تحياتي.

#3

اقوم اولا بتحويل جميع الحروف الى كلمة متكونة من اربعة حروف ABCD

ABCD يمكنها ان تعطينا 128 حالة مختلفة

تم بعد دالك اقوم بتحويل الناتج المتكون من الحروف التالية فقط ABCD الى

A __

B _-

C -_

D __

هدا هو الكود

FDcipher.rar

طريقة عمل البرنامج عند تشغيله يعطيع ملف تكست اسمه CONTENU تضع في ما تريد تشفيره او فك تشفيره وتقوم بتسجيل دالك

وتختار من البرنامج 1 لتشفير أو 2 لفك التشفير تم ينتج لك ملف تكست جديد يحتوي على الكود مشفر أو غير مشفر

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 11 نوفمبر 2013 في 13:58 — السبب: نقل الكود إلى المرفقات

1
#4

morse code

هل هو النظام الدي كان يستعمل في الاتصالات اللاسلكية ؟؟

ادا كان نعم هل هو النظام المستعمل في سفينة  التايتانيك ؟؟

#5

هل توجد علاقة بين رقم الحرف و السلسلة النصية الناتجه؟

إذا كان نعم فما هي؟

إذا كان لا، أليس من الأفضل إيجاد علاقة و التى من شأنها إستخدام bitwise لتيسير الكود و تقليله؟

 

 

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#6

الكود السابق هو أحد أشكال التشفير بالتعويض (الاستبدال):

en.wikipedia.org/wiki/Substitution_cipher

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7
C++er كتب:

هل توجد علاقة بين رقم الحرف و السلسلة النصية الناتجه؟

إذا كان نعم فما هي؟

إذا كان لا، أليس من الأفضل إيجاد علاقة و التى من شأنها إستخدام bitwise لتيسير الكود و تقليله؟

 

 

و الله ولي التوفيق

لا اخي لم استعمل اي علاقة فقط اخترت ترتيب عشوائي

+ لم اكن اعرف انه يمكن فعل دالك فهدا البرنامج طبقته لان فكرته اعجبتني وأردت ان اعرف هل بامكاني التعامل مع الملفات

+ سأحوال اعادة صنع التطبيق ودالك باجاد علاقات بين الحروف وسيكون مكتوب في عدة اسطر

#8

فكرة جميلة لكنها تشبه شيفرة موريس

2OyIo.png

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 11 نوفمبر 2013 في 14:01 — السبب: تم نقل السؤال

ابتسم للدنيا تبتسم لك و افعل الخير و انساه و لا تنسى أي أمر سيء قمت به حتى لا تكرره


لا تنسونا من صالح دعائكم أعانكم الله و ثبتكم على سواء السبيل


:)  :lol:  ^_^ 

#10

السلام عليكم .

فكرة الخوارزمية التي استعملها الأخ محسن بسيطة جداً .. وهي على خطوتين :

1- ترتيب الأحرف والرموز بشكل معيّن ( وليس مثل ترتيبها حسب جدول الآسكي )

2- إذا أخذنا الترميز الثنائي لرقم الحرف أو الرمز واستبدلنا كل 0 بــ '_' وكل 1 بــ '-'  فسنحصل على الشيفرة .

 

سامحك الله يا أخي محسن ... ما كل هذا الكود ؟.. أسوأ ما يقوم به المبرمج هو النشاط أثناء كتابة كود روتيني . دائماً كن كسولاً وابحث عن طريقة أسهل لإنجاز ما تريد ..:D

اختصرت جميع الدوال التي استعملتها كما يلي

char *MouhsinsRandom=        " \ngkdqlfshmjvxnbwcpaozieyutrAQZWSEXDRCETVGYBHUNJIKOLPM5839041726&,\"\47:(!%-_*)^=$<#{>/]?.|+@[\\`}~";char *getABCD(int i){    char ABCD[5]={0};    for(int j=0;j<4;j++,i/=4)        ABCD[j]='A'+i%4;    return ABCD;}void cryptage(char caractr,FILE *fichcr){    int i;    for(i=0;MouhsinsRandom&&MouhsinsRandom!=caractr;i++);    fputs(getABCD(i),fichcr);}void decryptage(char *chaincr,FILE *fichcr){    int i=0;    for(char*M=MouhsinsRandom;*M;M++,i++)        if(!strcmp(chaincr,getABCD(i)))            fputc(MouhsinsRandom,fichcr);}void cryptagee(char caractr,FILE *fichcr){    caractr-='A';    char *C[4]={"__","_-","-_","--"};    if( caractr<4 && caractr>=0 )        fputs(C[caractr],fichcr);}void decryptagee(char *chaincr,FILE *fichcr){    fputc('A'+((chaincr[0]=='-')+(chaincr[0]=='-')*2),fichcr);}

وطبعاً كما ذكرت , عند تجريد الفكرة سنصل إلى أنها فقط تبديل الحروف ثم طباعتها بالترميز الثنائي وبدل 0و1 نستعمل _ و -

 

ونسيت التنبيه إلى أنك استعملت int* بدلا من FILE* وهذا عيب ! :p , أعني أن الكود لم يعمل عندي بدون تعديله , فهل يعمل في C ?

بالتوفيق :)

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 11 نوفمبر 2013 في 17:05

2
#11

هههههههه

نعم اعرف ان الكود كارتة

لقد انجزته بعد تعلمي لتعامل مع الملفات مباشرة تقريبا بعد شهرين من دخولي الى عالم البرمجة

فلم اكن اعرف كيف اتعامل مع السلاسل الحرفية ووو

+ وجهي احمر بكتابتك " سامحك الله اخي محسن "  :blush:

لكن لاتخف سأكتب كود اقصر من الدي اعطيني وأقفل فمك  :bash:

 

نعم قد استعمل * int لأن المترجم لم يعطيني اي خطأ, لم انتبه + كنت استعمل codeblock فهو يسمح بالعديد من التجاوزات

 

+ لدي كود مشابه وهو يخص لعبة x o ( تيك تاك ) في الكونسول سأضعه في المنتدى

تم تعديل هذه المشاركة بواسطة MouhcineFD في 12 نوفمبر 2013 في 02:40

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