اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

تشفير البيانات في الجداول ... هل من جديد ؟


الردود الموصى بها

السلام عليكم

أقوم حالياً بتصميم قاعدة بيانات مهمة ، وتحتوي على معلومات من المهم عدم تسربها خارج الجهاز .

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

ولكني أعتقد أن هذه الطريقة سهلة الاكتشاف .

فهل لدى رواد المنتدى معلومات عن هذا الموضوع ، وقد بحثت في المنتدى ولم أجد ما يتعلق بهذا الموضوع مباشرة .

رابط هذا التعليق
شارك

هل سأستمر كثيراً في محادثة نفسي :') .... أرجو غير ذلك :@ .

يبدو أن ما ذكرته في ردي السابق كان غير صحيح ، فعن طريق دالة التشفير يمكن تجاوز تلك المشاكل . ويبقى احتمال حصول بعض البطء في البحث والاستعلام .

وهذا موضوع وجدته محفوظاً لدي عن التشفير منتدى فيجول بيسك العرب الذي لا أدري أين ذهبوا بعد إلغاء الموقع السابق .

دروس المبتدئين: كيفية تشفير النصوص والملفات للمبتدئين
Posted on 08-03-2002 by الحلبي

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



أولاً يجب معرفة ان اي ملف هو عبارة عن مجموعة من الرموز منها من يمكن إظهاره كالحروف و الارقام ومنها من لايمكن رؤيته على الرغم من كونة موجوداً حيث تظهر على شكل رموز غير مفهومة , في الوقت الحالي يجب التركيز على ان حرف يظهر امامك على لوحة المفاتيح او زر له رمز خاص, مثلاً : 

--------------------------------------------------------------------------------

A=65 , a=97 , y=121 
--------------------------------------------------------------------------------

حيث يسمى هذا النظام ASCII ويرمز لكل زر برقم مختلف حتى ان الاحرف الكبيرة لاتساوي الارقام الصغيرة. 
ويمكن الحصول على الرمز الخاص بأي حرف من خلال الدالة ASC التي تعطي قيمة الاسكي لاي حرف او رقم , مثلاً : 

--------------------------------------------------------------------------------

Print Asc(“A”) ‘ يطبع الرقم 65 على الفورم والذي يمثل الرمز الخاص بالحرفA 
Print Asc(“9”) ‘ يطبع الرقم 59 والذي يمثل الرمز الخاص بالعدد 9 
--------------------------------------------------------------------------------


كما ان الدالة Chr() تقوم بعكس العمل تماماً حيث تأخد الرمز وترجع الحرف المناسب : 


--------------------------------------------------------------------------------

Print Chr(65) ‘ تطبع الحرف A 
Print Chr(59) ‘ تطبع الرقم 9 
--------------------------------------------------------------------------------


بعد ان عرفنا انه يمكن تحويل اي حرف الى كود معين ومن ثم يمكن إرجاع الحرف السابق من الكود التابع له, بقي ان نعرف ان مجال هذة الرموز هو من 0 الى 255 اي انه لايوجد رمزخارج عن هذا المجال, امثله : 

الرمز التابع للزر إدخال(ENTER) هو 13 
كما ان الرمز التابع للزر مسافة (SPACE) هو 32 
وكذلك حال باقي الأزرار. 

يمكن استغلال المعلومات السابقة في عملة التشفير , دعونا نرى مثالاً : 

إذا كان لدينا الحرف A مثلاً يمكن تشفيره وذلك كالتالي : 

--------------------------------------------------------------------------------

Text=”A” 
Text=Chr( Asc(Text)+3 ) ‘ Text = “D” 
--------------------------------------------------------------------------------


حيث قمنا بتحويل الحرف A الى رمز(65) باستخدام ASC() تم اضفنا العدد 3 الى الرمز وحولنا الرقم الناتج (68) إلى حرف باستخدام الدالة Chr() فكان الناتج هو “D” 

وبهذة الطريقة فقد قمنا بإخفاء الحرف القديم بحرف آخر بحيث يمكن ببساطة إسترجاع الحرف الحقيقي بعكس الطريقة : 


--------------------------------------------------------------------------------

Text=”D” 
Text = Chr ( Asc(Text)-3 ) ‘ Text =”A” 

--------------------------------------------------------------------------------

وكذلك الحال إذا كان النص اكبر من حرف واحد : 


--------------------------------------------------------------------------------

Text=”Welcome To Visual Basic” 
FOR I=1 TO Len(Text) 
Letter=Mid(Text,I,1) 
Mid(Text,I,1)=Chr( Asc(Letter)+3 ) 
NEXT I 
--------------------------------------------------------------------------------



يقوم المثال السابق بتكرار العملية السابقة على كل حرف وذلك بمعرفة طول النص بواسطة الدالة Len() ومن ثم اخذ النص حرف بعد حرف عن طريق الدالة MID() التي تقص النص في الموقع I بطول حرف واحد ومن ثم تطبيق التحويل السابق على هذا الحرف وبعده الذي يليه حتى آخر النص , وفي الاخير سوف ينتج النص التالي : 


--------------------------------------------------------------------------------

Text=”Zhofrph#Wr#Ylvxdo#Edvlf” 

--------------------------------------------------------------------------------

من الواضح ان النص الناتج هو نص غير مفهوم و بذلك يمكن إسترجاع النص اللاصلي كالتالي : 


--------------------------------------------------------------------------------

Text=”Zhofrph#Wr#Ylvxdo#Edvlf” 
FOR I=1 TO Len(Text) 
Letter=Mid(Text,I,1) 
Mid(Text,I,1)=Chr( Asc(Letter)+3 ) 
NEXT 
--------------------------------------------------------------------------------


تبقى الان ان نبين انه يوجد عيب في الامثلة السابقة وهو انه اذا وجد حرف رمزه اكبر من 252 فانه بإضافة 3 الى هذا الرقم سوف نتجاوز المجال المسموح به وهو من 0 الى 255 , كما انك قد تود ان تستخدم رقم آخر غير الثلاثة للتشفير مثل 76 وذلك لزيادة درجة الصعوبة , الطريقة الثلى لتجاوز هذة المشكلة هي استخدام الطريقة التالية : 

--------------------------------------------------------------------------------

Mid(Text,I,1)=Chr( (Asc(Letter)+3) Mod 256 ) 

--------------------------------------------------------------------------------

حيث لا يسمح الامر MOD بتجاوز العدد 255 , وبذلك يمكن استخدام الرقم الذي تريدة بدلاً عن الثلاثة دون اي مشاكل . 

سوف نضع الان شفرة البرنامج دالة فرعية يمكن إستدعائها عند الحاجة: 


--------------------------------------------------------------------------------

Function Encrypt1(Text As String, Num As Integer, Encrypt As Boolean) As String 
Dim Letter As String 
Dim Length As Long 
Dim I, Code As Long 

Length = Len(Text) 
For I = 1 To Length 
Letter = Mid(Text, I, 1) 
If Encrypt Then 
Code = Asc(Letter) + Num 
Else 
Code = Asc(Letter) - Num 
End If 
Mid(Text, I, 1) = Chr(Code Mod 256) 
Next I 
Encrypt1 = Text 
End Function 
--------------------------------------------------------------------------------


لاحظ ان الوسيط Encrypt هو الذي يحدد فيما اذا مكنا سنقوم بتشفير او بفك التشفير, فإذا كانت قيمتة True فان العملية ستكون عملة تشفير والعكس ستكون العملية عكسية. 

يمكن الأن استغلال الطريقة السابقة في تشفير اي ملف وذلك بفتح الملف اولاً تم قراءة بياناته الى متغير نص ومن ثم تطبيق الطريقة السابقة لتشفيرة ثم إعادة النص المشفر الى الملف وحفظه ويكون بذلك في مامن حتى يحين الوقت الذي نريد فيه استعادة البيانات الاصلية فنقوم فتح الملف وتطبيق العملية العكسية ونكون بذلك قد استعدنا البيانات : 


--------------------------------------------------------------------------------

Dim F As Integer 
Dim File As String 
Dim Data As Sting 

File=InputBox(“ Enter The Name Of The File “) 

F=FreeFile 
OPEN File For Binary As F 
Data=Space(LOF(F)) 
Get #F, ,Data 
Data=Encrypt( Data,34,True ) ‘ ENCRYPTION 
Put #F,1,Data 
Close F 
--------------------------------------------------------------------------------



قمنا في المثال السابق بعملية تشفير للملف الذي يريده المستخدم, وذلك باستخدام الرقم 34 بدلاً عن الرقم 3. 
لكي نقوم بفك التشفير نستبدل السطر التاسع بالتالي : 

--------------------------------------------------------------------------------

Data=Encrypt( Data,34,False) 
--------------------------------------------------------------------------------


******************************************************** 

كانت المناقشة السابق مجرد مدخل للتشفير حيث ان الطريقة التي ذكرتها هي عبارة عن طريقة قديمة وغير فعالة في حالة ان البيانات المراد تشفيرها هي بيانات مهمة, حيث ان بقليل من التركيز وإعادة المحاولة يمكن للمبرمج الذكي ان يعرف الرقم الذي الاذي استخدمته في التشفير ومن ثم يقوم بعكس العملية واستخراج البيانات . 

ولكن لاتقلق يوجد هناك طرق اكثر فعالية للتشفير ساقوم بمنقشتها في المستقبل القريب ان شاء الله العلي القدير. 


كلمة اخيرة : 

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



ملحوظة: الدرس بقلم/ رغيد الطيب

رابط هذا التعليق
شارك

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

اخي الكريم

علم التشفير علم واسع ومتشعب

بنسبه

أقوم حالياً بتصميم قاعدة بيانات مهمة ، وتحتوي على معلومات من المهم عدم تسربها خارج الجهاز
.

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

بعباره اخرء اذا كانته المعلومات مهمه وكان هذا الجهاز يعمل عليه اكثير من شخص فيمكن ان يتم تسريب هذي المعلومات واذا تم تسريب هذي المعلومات فلايعن هذا استحلة فك الشفره

لذا ينصح في مثل هذي الحلاته اين يكون البرنامج على جهاز مستقل وايضن في مكتب مستقل

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

بنسبه لطرق التشفير فيه كثيره وتعتمد على مداء فهم المبرمج في الخورزميات (( الرياضيات ))

تشفير البيانات

1- تشفير البيانات داخل الملف

2- تشفير الملف الذي بداخله البيانات

3- تشفير الملف + البيانات

شرح

1- تشفير البيانات داخل الملف وتعني انه يتم تشفير البيانات المدخله من خلال النموذج الى الجدول

ولكن لها عيب خاصه اذا كانته البيانات كثير فتجد عيوبها عند البحث (( يكون البحث بطي جداً))

2- تشفير الملفات او الملف الذي بداخله البيانات وهي عندما يتم تشغيل البرنامج فانه يقوم بفك التشفير عن الملف الذي يحتوي على البيانات وعند الخروج من البرنامج يعيد تشفير الملف

وايضن لها عيوب وهي مذا لو انتقط التيار الكهرباي اثنا تحميل البرنامج او الخروج من البرنامج اي بعباره اخرء انه لم تتم عملية التشفير على الملف وهنا تحدث المشكله وايضن يمكن عند تشغيل البرنامج فانه يمكن سرقة الملف الذي فيه البيانات بعد ما فك الحماية

3- تشفير الملف + البيانات

يتم تشفير البيانات المدخله الى الجداول وايضن يتم تشفير الملف عند الخروج من البرنامج واستعاده عند التشغيل مره ثانيه والعملية اما تتم من داخل البرنامج او عن طريق برامج مستقله معده مسبقاً لهذا الغرض

فهل لدى رواد المنتدى معلومات عن هذا الموضوع ، وقد بحثت في المنتدى ولم أجد ما يتعلق بهذا الموضوع مباشرة .

اخي الكريم انصحك

1- عندما تريد ان تشفر ملف يجب ان تخذ من هذا الملف نسخه فقد تتم عملية التشفير ولا تتم عملية استعادة الملفات او الملف او البيانات التي تم تشفيرها بطريقة صحيح

ملاحظه

اذا كنت صحب موسسه كبيره او مسؤل في دايره حكوميه وكانته المعلومات مهمه جداً فانصحك بان توضف شخص او تتعاقد مع شخص محترف جداً في مثل هذا المجال

والله الموفق

واعتذر عن كثرة الكلام

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

رابط هذا التعليق
شارك

شكراً لك أخي طيف على تجاوبك .

وبالنسبة لقاعدة البيانات فإني أريد أن أعمل عليها حماية برقم المعالج مع ترميزها وتشفير البيانات في الجداول .

وبعد بحث وجدت عدة أكواد للتشفير ، وقد أرفقتها بعد عمل مثال على أحدها ، أرجو أن يفيدك بشيء أخي طيف وبقية رواد المنتدى .

فشكراً لك أخي طيف مرة أخرى ، ولو لم ترد بردك السابق لأصبح هذا الموضوع حوار بيني وبين نفسي :d

_____.rar

تم تعديل بواسطه عبدالله سليمان
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

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



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information