ارجو من الاخوة الاعضاء وضع كود لتشفير الملفات
وانا مبتدىء بيسك ارجو شرح الكود بالتفصيل الممل لفهم كل نقطة فى الكود
ولكم جزيل الشكلر ووفقكم الله
ارجو من الاخوة الاعضاء وضع كود لتشفير الملفات
وانا مبتدىء بيسك ارجو شرح الكود بالتفصيل الممل لفهم كل نقطة فى الكود
ولكم جزيل الشكلر ووفقكم الله
الشرح صعب , مثال هنا : /index.php?showtopic=104530
إقرأ معى:
----
المثقفون العرب .. المزورون العرب: تأبين محمود درويش نموذجا
ماذا خسر العالم بانحطاط المسلمين ؟!! للعلامه: أبو الحسن الندوى (كتاب هام لكل مسلم).
المنهجية ومقدمات في الطلب (لطلاب العلم الشرعى)
شكرا اخى الكريم على المساعدة ولكن ما هو فائدة الكود بدون فهم وانا لسه مبتدىء
ارجو من الاخوة الكرام فى المنتدى ان لا يبخلوا على بشرح الكود وجعله الله فى ميزان حسناتكم
السلام عليكم
اقتباسما هو فائدة الكود بدون فهم وانا لسه مبتدىء
اقتباسالشرح صعب -_-
أفتح الفيجوال بيسك وضع على الفورم Command1 و Command2 و CommonDialog1
هذا كود مشروح أظنه ينفع في تشفير الملفات الصغيرة الحجم التنفيذية
أتمنى أن تستفيد من فكرته في مضمار الأفكار
كود
Option Explicit
Private Sub Command1_Click()
Dim ContentFile As String
Dim Password As String
Dim FileNumber As Long
'استعراض الملف الذي نود وضع كلمة سر عليه ووضع مساره في عنوان النموذج
With CommonDialog1
.Filter = "كل الملفات (*.*)|*.*|"
.Flags = cdlOFNHideReadOnly Or cdlOFNFileMustExist Or cdlOFNPathMustExist
.DialogTitle = "تحديد الملف"
.FileName = ""
.ShowOpen
If .FileName = "" Then Exit Sub
Caption = .FileName
End With
'تعريف رقم ملف جديد لدى ويندوز
FileNumber = FreeFile
'تهيءة المتحول بحجم الملف الذي سوف يفتح لكي يتم وضع المحتويات به
ContentFile = Space$(FileLen(Trim$(Caption)))
'فتح الملف بشكل ثنائي ووضعه داخل المتحول
Open Trim$(Caption) For Binary As FileNumber
Get #FileNumber, 1, ContentFile
Close #FileNumber
'فتح مربع الحوار الادخال لوضع كلمة المرورو الجديدة
Password = InputBox("قم بتعيين كلمة المرور للملف على الا تزيد عن ثمانية خانات", "كلمة مرور")
'تم تحديد عدد الخانات بسبب القرائة من جديد فيجب ان نعرف نقراء من اين اوي مكننا حل المشكلة بوضع علامة مميزة لبدء كلمة المرور ونهايتها مثلا كعلامة #
'كلمة السر#
'اما في حال تحديد العدد المعين فنقوم بملاء الخانات البقاية باصفار وسوف نستخدم هنا الطريقة الاولى
'مع اننا حددنا عدد الخانات ولكن لن نعطي هذا اي اهمية داخل البرمجة حتى ولو زاد العدد عن ثمانية
'وضع كلمة المرور في بداية الملف قبل مكونات الملف الاصلي ويمكن تحديد مكان اخر او تشغيير ملف
'قمنا بوضع العلامة التي تقوم ببيان البداية والنهاية
ContentFile = Password & "#" & ContentFile
'في حال كنت ستسخدم كلمة السر في بايت محدد فانه من الواجب عليك بان تقوم باختيار حرف بداية وحرف نهاية غير معروف او غير مستخدم في تشفير الملف ولذلك انصح بان تستخدم الطريقة التالية
'هذه الطريقة في حال كانة كلمة السر في مكان اخر داخل الملف طبعا لاننا لو قمنا بفتح الملف داخل محرر نصوصو وكانة في البداية فسوف نعرف كلمة المرور
'طبعا هذا الاحتمال وارد وغير وارد فالكثير لايتوقع ان يتم التشفير بهذه الطريقة ولكن البعض يقوم بفتح الملف كما اعمل انا عند ارادة فك كلمة مرور
'يتم اختبار عدد المحارف
'يتم وضع عدد محارف كلمة المرور لكي يتم قرائة هذا العدد من الملف ولكي لانقوم بحذف او تعديل حرف المربع في حال كان ضمن الملف
'طبعا نقوم بذلك بعد ان نقوم بتقسيم الملف لقسمين حتى نضع كلمة المرور في الداخل
'ContentFile = ContentFile1 & "#" & Len(Password) & "#" & Password & "#" & ContentFile2
'يتم فتح الملف مرة اخرى وذلك لتخزين القيم الجديدة به اي بعد وضع كلمة المرور
Open Trim$(Caption) For Binary As FileNumber
Put #FileNumber, 1, ContentFile
Close #FileNumber
'ولكن ضع في حسبانك ان بعض الملفات لاتتاثر عند وضع كلمة السر في بداية الملف وتفتح بطريقة عادية
End Sub
Private Sub Command2_Click()
Dim ContentFile As String
Dim Password As String
Dim FileNumber As Long
Dim i As Long
Dim ss As String
Dim sss As String
Dim RongPAssword As Integer
'استعراض الملف الذي نود وضع كلمة سر عليه ووضع مساره في عنوان النموذج
With CommonDialog1
.Filter = "كل الملفات (*.*)|*.*|"
.Flags = cdlOFNHideReadOnly Or cdlOFNFileMustExist Or cdlOFNPathMustExist
.DialogTitle = "تحديد الملف"
.FileName = ""
.ShowOpen
If .FileName = "" Then Exit Sub
Caption = .FileName
End With
'تعريف رقم ملف جديد لدى ويندوز
FileNumber = FreeFile
'تهيءة المتحول بحجم الملف الذي سوف يفتح لكي يتم وضع المحتويات به
ContentFile = Space$(FileLen(Trim$(Caption)))
'فتح الملف بشكل ثنائي ووضعه داخل المتحول
Open Trim$(Caption) For Binary As FileNumber
Get #FileNumber, 1, ContentFile
Close #FileNumber
'يتم قرائة الملف من البداية حتى يتم التاكد من بداية الحرف
'كلمة المرو#
For i = 1 To Len(ContentFile)
'يتم قطع عدد من الاحرف بمقدار الدوارة ووضعها داخل المتغيير حتى يتم اختبار وجود الحرف حتى تاتي العملية التالية
ss = Mid$(ContentFile, 1, i)
'في حال تم وجود هذا الحرف يتم الخروج من الدوارة كلي تاتي العملية التالية
If Right$(ss, 1) = "#" Then Exit For
Next
'يتم قص كلمة السر من الملف حتى الحرف القبل الاخير والذي هو علامة المربع
sss = Mid$(ss, 1, (Len(ss) - 1))
'يتم الحصول على كلمة المرور حتى يتم التاكد من صحتها
10 Password = InputBox("هذا الملف محمي بكلمة مرور قم بوضع كلمة المرور حت يتم التاكد منها", "كلمة المرور")
'يتم التحقق من كلمة المرور في حال كانة صحيحة يتم ازالتها من الملف والا يتم الخروج دون التغيير في الملف
If Password = sss Then
MsgBox "كلمة المرور صحيحة وسوف يتم ازالة الحماية عن الملف"
Else
RongPAssword = MsgBox("كلمة السر هذه خاطئة هل تود المحاولة مرة اخرى ", vbYesNo, "كلمة خاطئة")
'اظهار رسال
If RongPAssword = vbYes Then
'يتم اعادته الى مربع ادخال كلمة السر من جديد
GoTo 10
Else
'يتم الخروج دون تعديل الملف
Exit Sub
End If
End If
'يتم قطع القيمة السابقة من الملف لكي يتم اعادته بدون كلمة مرور
ContentFile = Mid$(ContentFile, i + 1, Len(ContentFile))
'يتم تخزين الملف بدون كلمة مرور
Open Trim$(Caption) For Binary As FileNumber
Put #FileNumber, 1, ContentFile
Close #FileNumber
End Sub
Private Sub Form_Load()
Command1.Caption = "حماية ملف بكلمة مرور"
Command2.Caption = "حذف كلمة المرور طبعا بعد التاكد من ادخالها بشكل صحيح"
End Sub
ألا بذكر الله تطمئن القلوب
ولكن يا اخى هذا التشفير لا ينفع مع الملفات كبيرة الحجم فما الحل اذا
إقرأ معى:
----
المثقفون العرب .. المزورون العرب: تأبين محمود درويش نموذجا
ماذا خسر العالم بانحطاط المسلمين ؟!! للعلامه: أبو الحسن الندوى (كتاب هام لكل مسلم).
المنهجية ومقدمات في الطلب (لطلاب العلم الشرعى)
هذا الموضوع مغلق.