منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

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

الجزء الأول

و الخلاصة من الجزء الأول تنحصر في الدوال التالية التي من الممكن استخدامها لتحويل حرف الي صورة و العكس

خلاصة الجزء الأول:


PHP كود :
   Private Function ConvertCharToBitmap(chr As CharOptional w As Integer 2Optional h As Integer 2) As Bitmap
        Dim bmp 
As Bitmap = New Bitmap(wh)
 
       Using g As Graphics Graphics.FromImage(bmp)
 
           g.Clear(Color.FromArgb(Convert.ToByte(chr), 000))
 
       End Using
        Return bmp
    End 
Function

 
   Private Function ConvertBitmapToChar(bmp As BitmapOptional x As Integer 1Optional y As Integer 1) As Char
        Return CType
(Convert.ToChar(bmp.GetPixel(xy).A), Char)
 
   End Function 
و الكود التالي يوضح كيفية استخدام الدوال أعلاه

PHP كود :
       ' تحويل الحرف الي صورة
        Dim bmp As Bitmap = ConvertCharToBitmap("D"c)
        ' 
الحصول علي الحرف و إظهار الحرف بشكل ما
        Me
.Text ConvertBitmapToChar(bmp).ToString
        
' إظهار الصورة بشكل ما
        Me.BackgroundImage = bmp 

ملحوظة
أرجو أن لا ننسي جميعا أن الصور يمكن تحويلها هي أيضا الي بايت
أي أن الكود أعلاه يمكن تحويله الي بايت و حفظه بشكل ما في ملف او في قاعدة بيانات


الجزء الثاني:

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

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

1- حفظ المعلومات و حمايتها
2- حماية السورس كود
3- بناء الباركود و قرائته
4- تحويل الملفات الي أنماط مختلفة
5- بناء الفونت
6- بناء الصور المتحركة
7- حماية السيريال الخاص باي برنامج


تحويل الحروف الي صور
الخطوات التالية توضح كيفية تحويل مجموعة من الحروف الي مجموعة صور
1- تعريف الكلمة او الحروف
PHP كود :
Dim s As String "omar amin" 


2 تعريف مصفوفة الصور

PHP كود :
Dim bitmaps As Bitmap() = New Bitmap(s.Length 1) {} 

3- تحويل كل حرف موجود في التكست الي صورة و ذلك باستخدام الدوال التي كتبناها في الخلاصة أعلاه ثم نقوم بإضافة كل صورة الي مصفوفة الصور

PHP كود :
       For i As Integer 0 To s.Length 1
            Dim c 
As Char s(i)
 
           bitmaps(i) = ConvertCharToBitmap(c)
 
       Next 
وبهذا نكون حصلنا علي مجموعة صور تحتوي علي كل الحروف

تحويل الصور الي حروف مرة أخري

الخطوات التالية توضح ذلك
1- تعريف مصفوفة الحروف

PHP كود :
       Dim Chars As Char() = New Char(bitmaps.Length 1) {} 

2- قراءة كل صورة علي حده و تحويلها الي حرف ثم نضيفها الي مصفوفة الحروف

PHP كود :
       For i As Integer 0 To bitmaps.Length 1
            Dim c 
As Char ConvertBitmapToChar(bitmaps(i))
 
           Chars(i) = c
        Next 

3- تحويل الحروف الي كلمة مرة أخري


PHP كود :
       Dim result As String ""
 
       For j As Integer 0 To Chars.Length 1
            result 
+= Chars(j)
 
       Next 

من المؤكد انه يمكنكم تقليل حجم الكود لكن انا كتبته بهذا الاسلوب للتوضيح فقط

خلاصة المرحلة الثانية هي الدوال التالية التي يجب ان يتم استخدامها مع الدوال الخاصة بالمرحلة الأولي


PHP كود :
  Private Function ConvertBitmapsToChars(bitmaps As Bitmap()) As Char()
 
       Dim Chars As Char() = New Char(bitmaps.Length 1) {}
 
       SyncLock Chars
            For i 
As Integer 0 To bitmaps.Length 1
                Dim c 
As Char ConvertBitmapToChar(bitmaps(i))
 
               Chars(i) = c
            Next
        End SyncLock

        Return Chars
    End 
Function

 
   Private Function ConvertStringToBitmaps(As String) As Bitmap()
 
       Dim bitmaps As Bitmap() = New Bitmap(s.Length 1) {}
 
       SyncLock bitmaps
            For i 
As Integer 0 To s.Length 1
                Dim c 
As Char s(i)
 
               bitmaps(i) = ConvertCharToBitmap(c)
 
           Next
        End SyncLock

        Return bitmaps
    End 
Function 

,و الكود التالي يوضح كيفية استخدام الدوال أعلاه


PHP كود :
       Dim s As String "omar amin"
 
       Dim bitmaps As Bitmap() = ConvertStringToBitmaps(s)
 
       Dim chars As Char() = ConvertBitmapsToChars(bitmaps)

 
       Dim result As String ""
 
       For j As Integer 0 To chars.Length 1
            result 
+= chars(j)
 
       Next
        Me
.Text result 
في المرفقات ستجدون نسخة كاملة من الكود و ذلك بعد تحويل الكود الي كلاسان
احدهما يستخدم في اخفاء التكست
و الكلاس الاخر يستخدم في اظهاره مرة ثانية
و الكلاسان تم كتابتهما بأسلوب يضمن عدم وجود خطأ أثناء التنفيذ طبعا هذا في حالة أنه لم يتم تمرير بيانات بشكل صحيح

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