18-10-17, 10:49 AM
(آخر تعديل لهذه المشاركة : 18-10-17, 10:50 AM {2} بواسطة silverlight.)
الأسلوب التاسع:
استخدام الكلاسان GZipStream Class و DeflateStream Class
وهذان الكلاسان سوف تجدهم في فضاء الأسماء IO.Compression
ومن مميزات هذان الكلاسان انه يمكن استخدامهم في تشفيير ملف أو String أو أرقام....الخ
واسلول استخدام الكلاسان متشابه تماما
الفارق بينهم هو نتيجة التشفيير
حيث أن ناتج التشفيير في الكلاس DeflateStream أقل في طول مصفوفة البايت عن الكلاس GZipStream
الدوال التالية يمكن استخدامها في التشفيير و فك التشفيير
الدالة الأولي : التشفيير باستخدام GZipClass
الدالة الثانية: التشفيير بإستخدام DeflateStream
الدالة الثالثة: فك التشفيير باستخدام GZipStream
الدالة الرابعة: فك التشفيير بإستخدام DeflateStream
الإستخدام
مثال لتشفيير String
1- تعريف String
2- تحويل String الي مصفوفة بايت
3- تشفيير مصفوفة البايت
4- فك التشفيير عند الحاجة له
فك التشفيير يتم بشكل عكسي
1- نمرر مصفوفة البايت المشفرة الي دالة فك التشفيير
2- ثم نحول الناتج الي String
ملحوظة:
نفس الأسلوب يمكن استخدامه لتشفيير ملف
لأن الملفات يمكن قرائتها علي شكل مصفوفة بايت
المراجع:
GZipStream Class
DeflateStream Class
استخدام الكلاسان GZipStream Class و DeflateStream Class
وهذان الكلاسان سوف تجدهم في فضاء الأسماء IO.Compression
ومن مميزات هذان الكلاسان انه يمكن استخدامهم في تشفيير ملف أو String أو أرقام....الخ
واسلول استخدام الكلاسان متشابه تماما
الفارق بينهم هو نتيجة التشفيير
حيث أن ناتج التشفيير في الكلاس DeflateStream أقل في طول مصفوفة البايت عن الكلاس GZipStream
الدوال التالية يمكن استخدامها في التشفيير و فك التشفيير
الدالة الأولي : التشفيير باستخدام GZipClass
PHP كود :
Private Function Zip(bytes As Byte()) As Byte()
Dim zipped As Byte() = Nothing
Using ms As IO.MemoryStream = New IO.MemoryStream
Using zs As IO.Compression.GZipStream = New IO.Compression.GZipStream(ms, IO.Compression.CompressionMode.Compress)
zs.Write(bytes, 0, bytes.Length)
End Using
zipped = ms.ToArray()
End Using
Return zipped
End Function
الدالة الثانية: التشفيير بإستخدام DeflateStream
PHP كود :
Private Function Compress(bytes As Byte()) As Byte()
Dim compressed As Byte() = Nothing
Using ms As IO.MemoryStream = New IO.MemoryStream
Using ds As IO.Compression.DeflateStream = New IO.Compression.DeflateStream(ms, IO.Compression.CompressionMode.Compress)
ds.Write(bytes, 0, bytes.Length)
End Using
compressed = ms.ToArray()
End Using
Return compressed
End Function
الدالة الثالثة: فك التشفيير باستخدام GZipStream
PHP كود :
Private Function DeZip(bytes As Byte()) As Byte()
Dim dezipped As Byte() = Nothing
Using sw As IO.MemoryStream = New IO.MemoryStream()
Using sr As IO.MemoryStream = New IO.MemoryStream(bytes)
Using ds As IO.Compression.GZipStream = New IO.Compression.GZipStream(sr, IO.Compression.CompressionMode.Decompress)
ds.CopyTo(sw)
End Using
End Using
deZipped = sw.ToArray
End Using
Return dezipped
End Function
الدالة الرابعة: فك التشفيير بإستخدام DeflateStream
PHP كود :
Private Function Decompress(bytes As Byte()) As Byte()
Dim decompressed As Byte() = Nothing
Using sw As IO.MemoryStream = New IO.MemoryStream()
Using sr As IO.MemoryStream = New IO.MemoryStream(bytes)
Using ds As IO.Compression.DeflateStream = New IO.Compression.DeflateStream(sr, IO.Compression.CompressionMode.Decompress)
ds.CopyTo(sw)
End Using
End Using
decompressed = sw.ToArray
End Using
Return decompressed
End Function
الإستخدام
مثال لتشفيير String
1- تعريف String
2- تحويل String الي مصفوفة بايت
3- تشفيير مصفوفة البايت
4- فك التشفيير عند الحاجة له
PHP كود :
Dim s As String = "visual basic"
Dim values As Byte() = System.Text.Encoding.Unicode.GetBytes(s)
Dim compressed As Byte() = Compress(values)
Dim zipped As Byte() = Zip(values)
فك التشفيير يتم بشكل عكسي
1- نمرر مصفوفة البايت المشفرة الي دالة فك التشفيير
2- ثم نحول الناتج الي String
PHP كود :
Label4.Text = System.Text.Encoding.Unicode.GetString(Decompress(compressed))
Label5.Text = System.Text.Encoding.Unicode.GetString(DeZip(zipped))
ملحوظة:
نفس الأسلوب يمكن استخدامه لتشفيير ملف
لأن الملفات يمكن قرائتها علي شكل مصفوفة بايت
المراجع:
GZipStream Class
DeflateStream Class
Retired