تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تشفير اوامر السريال بورت (خلفيتي عن التشفير منعدمة)
#1
السلام عليكم
اقوم بعمل برنامج يرسل بعض الاوامر عبر السريال بورت الي بورده (كالاردوينو )
الان الاوامر مكتوبه بشكل صريح اي انه عند كتابه ارسال رقم خمسة
يرسل رقم خمسة 
اريد الان تشفير هاذا الامر لجعله مجهول





ربما انا هنا لوضع بصمه لكل مبرمج في قدر استطاعتي

وأيضا انتظر بصمه احدكم

الرد }}}
تم الشكر بواسطة: جيولوجي مبتدئ , جيولوجي مبتدئ
#2
السلام عليكم ورحمة الله وبركاته

التشفير ببساطة هو تغيير رمز برمز آخر إعتماداً على خوارزمية (إما قياسية مثلا الهيكس الثماني والست عشري وغيره - أو نوع آخر أنت تقوم بصناعته)
النوع الاخر : فيك تتفنن بصناعة أي خوارزمية من البساطة إلى شدة التعقديد ..
كأن تبدل بين الأحرف بحرف آخر وقبل قراءه الرمز يقوم البرنامج بإرجاع الحرف لأصله ثم يقرأ الأمر منه.
مثلا تبدل أحرف كلمة (بحر) بطريقة ما وتجعلها تظهر بالرموز التالية (dim)  : وهي تعتمد على استخراج كود (Asc) لكل حرف واضافة عليه (-100) ثم استخراج المحرف الخاص بكل رقم نانتج باستخدام (chr) فتظهر عندنا الأحرف العربية بأحرف أنكليزية.
ولكن الأهم أن تعرف كيف تعيد تلك الرموز لأصلاها عند المستخدم المصرح له بذلك.ففي مثالنا السابق فقط : نحسب قيمة طكل أحرف من الأحرف الجديدة بإستخدام الدالة (Asc) ثم نظيف عليه القيمة العكسية للقيمة السابقة والتي ستكون (100) ثم نستخرج المحرف أو الحرف الخاص بكل قيمة بواسطة (Chr) فترجع الحروف لأصلها الأول ثم نجمع تلك الحروف فترجع (dim) للكلمة الأصلية(بحر).

يعني لمثالنا البسيط : التكويد طرحنا قيما - وفك التكويد جمعنا نفس القيمة السابقة.

هذا يعتبر تكويد بسيط - بإمكانك بمعرفتك بالرياضيات ومعادلاتها إختراع معادلات أكثر تعقيداً في التشفير .. 

وبإمكانك صناعة معجم تشفير من هذه الطريقة البسيطة تصنع تكويد خاص لكل حرف بحيث يصبح معقد جداً يصعب توقعه لكثر احتمالات حله ولكن تأكد بأنه ليس مستحيلاً (وتضع هذا المعجم في البرنامجين المكود والذي يفك التكويد)..

وبإمكانك إدخال المعادلات والحلقات الحسابية عليه بحيث يتم التشفير بحسب موضع الحرف من الجملة (وستحتاج هنا معادلة لكل حرف) لن تصنعها كلها أنت فقط ستصنع الطريقة والحلقات هي من ستقوم بدورك هذا (مثل حلقات Do  - For --- إلخ). 
إن أعطيت كل حرف رمز فك التشفير - يكون التشفير قابل للفك وإلا فعلى الأغلب بهذه الطريقة سيكون تشفير بإتجاه واحد(يعني لن تستطيع الرجوع لكود الأصلي قبل التشفير).
فالأهم أن تكون قادرك على صناعة كود عكس التشفير بناءاً على طريقتك بالتشفير.

===========
فالتشفير بإتجاه واحد - يعني بإمكانك التشفير ولكن لا يمكنك أن تعود للحالة الأصلية مهما فعلت (وهذا يستخدم بالعادة لتشفير تفعيل البرامج لا أكثر) لأنه ليس مهماً معرفة الكود الأصلي ولكن المهم استخدامك لكود مشفر يستطيع برنامجك التعرف عليه ك كود مشفر من جهازك أو من رقم تحصل عليه بواسطة المصدر الأصلي.
===========
===========
التشفير بإتجاهين هو بالمختصر : برنامج يشفر - ويرسل الكود - وبرنامج آخر يفك التشفير ثم يقرأ الرسالة.
===========
السؤال : لو قمت بتشفير الرمز المرسل للاردوينو
هل سيستطيع برنامج الأردوينو فك التشفير ثم قراءته على شكل الرمز الذي أرسلته له ؟؟
===========

مثال عن التشفير البسيط : 
أفتح مشروع جديد وضع عليه الأدوات التالي (TextBox1 - TextBox2 - TextBox3 - HScrollBar1)  
ثم انسخ الكود التالي إليه وشغله وجرب أن تحرك شريط التمرير(HScrollBar1) درجة درجة يمين أو يسار وشاهد التغيرات على النص:

كود :
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       TextBox1.Text = "123456"
       HScrollBar1.Maximum = 255
       HScrollBar1.Minimum = -255
       HScrollBar1.Value = 0


   End Sub

   Private Sub HScrollBar1_Scroll(sender As Object, e As ScrollEventArgs) Handles HScrollBar1.Scroll
       Dim V1 As Long = 0, S1 As String = "", S2 As String = ""

       S1 = TextBox1.Text
       V1 = Val(HScrollBar1.Value)
       TextBox3.Text = V1


       For i = 1 To S1.Length
           S2 = S2 & Chr(Asc(Mid(S1, i, 1)) + V1)
       Next

       TextBox2.Text = S2
   End Sub

ملاحظة : ما دامت الأرقام ما بين 0 و 255 المعرضة لاستخدام دالة الـ (Chr) سيبقى البرنامج يستجيب
وإذا خرجت خارج هذا النطاق سيعطيك خطأ .. لأن هذا مجالها أي Byte.
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
#3
(18-08-22, 08:02 PM)Taha Okla كتب : السلام عليكم ورحمة الله وبركاته


وعليكم السلام ورحمة الله وبركاته

السؤال : لو قمت بتشفير الرمز المرسل للاردوينو
هل سيستطيع برنامج الأردوينو فك التشفير ثم قراءته على شكل الرمز الذي أرسلته له ؟؟
===========
اخي الفاضل اشكرك علي الشرح الذي أضاف لي الكثير
اما عن سؤالك ..
بحثت كثيرا في هذا الموضوع امس عند رؤيتي لمشاركتك لمحاولة فهم اليه عمل الاردوينو والإجابة هي لا 
الا في حالتين
الاولي وهي الموفرة ( بالنسبة لأنه منتج تجاري )
وهي تطويل كود الاردوينو واعطائه الأكواد علي شكل متغير 
لاكنها بها مشكلتين
الاولي مساحة تخزين ال ATmega وهو الاي سي الخاص بالاردوينو
والثانية بهذه الطريقة يمكن كسرها بسهوله لان هكذا كل شخص استطاع قرائه الامر الخارج من البورت يستطيع ارسال نفس الامر دون الحاجة لمعرفه خباياه وليقم بعمل ما يريد
اما عن الحالة الثانية
وهي غير موفره لمنتج تجاري
وهي اضافه أي سي يقوم بترجمة الأوامر للاردوينو وهاذا الامر سوف يسبب بارتفاع سعر المنتج وأيضا التغير بالتصميم الذي تم صنعه مسبقا 
___________
الان هناك امرين 
الأول انه وجدت نموذج من ماكينة كتلك التي اعمل عليها يقوم البرنامج الخاص بها بأرسال الكود بطريقه مشفره لاكن الاي سي الخاص بالماكينة يستقبل الامر بدون تشفير وهاذا ما عجزت عن فهمه 
اما عن الامر الثاني وهو ارسال الأوامر عن طريق السريال معقد بالنسبي لي بعض الشيء من حيث انه وجدت بعض البرامج ترسل بطريقه عجيبة بعض الشيء
انه يقوم البرنامج بالاتصال بالماكينة بدون استخدام السيريال و أيضا يقوم بالتعرف عليها ( اعلم انه باستخدام درايف ) مثل الماوس مثلا لا تسطيع قراءه ما يحدث بين الاتصال بالجهاز ( الماوس ) والويندوز 
خلاصه ما أقول لأني اعرف انني قد اطلت كثيرا والأمور سوف تذهب لمحل اخر
كيف يقوم المبرمج بعمل برنامج يستخدم فيه السريال بأرسال أوامر مشفره ويستقبلها الاي سي بدون تشفير ( هذه التجربة قمت بها علي احد ماكينات الليزر الامر يخرج مشفر ويصل بدون تشفير ( توصلت لهاذا عن طريق محاكاه الماكينة للبرنامج ( بالطبع اعلم انه يستطيع أي احد محاكاه الماكينة الخاصة بي لاكن هنا استخدمت طريقه انه البرنامج يقوم بأرسال امر ليتأكد من الماكينة )





ربما انا هنا لوضع بصمه لكل مبرمج في قدر استطاعتي

وأيضا انتظر بصمه احدكم

الرد }}}



التنقل السريع :


يقوم بقرائة الموضوع: