نمونه سورس کد فشرده سازی و رمزگذاری آسان رشته با VB.NET


در دنیای برنامه‌نویسی، یکی از موضوعات بسیار مهم و کاربردی، مدیریت حجم داده‌ها است. مخصوصاً زمانی که نیاز دارید داده‌ها را در کم‌ترین فضای ممکن نگهداری کنید یا انتقال دهید، فشرده‌سازی داده‌ها اهمیت زیادی پیدا می‌کند. علاوه بر این، در بسیاری از موارد، امنیت داده‌ها نیز باید حفظ شود؛ یعنی، نیاز است که داده‌ها رمزگذاری شوند تا از دسترسی غیرمجاز جلوگیری شود. در این مقاله، قصد داریم به صورت جامع و کامل درباره نمونه سورس کد فشرده‌سازی و رمزگذاری آسان رشته با VB.NET صحبت کنیم، و نکات کلیدی و کاربردی آن را بررسی کنیم.

فشرده‌سازی رشته در VB.NET




فشرده‌سازی به معنای کاهش حجم داده‌ها است، و در زبان VB.NET، این فرآیند معمولاً با استفاده از الگوریتم‌های استاندارد و قدرتمند انجام می‌شود. یکی از روش‌های مرسوم و محبوب برای فشرده‌سازی، استفاده از کلاس‌های موجود در فضای نام `System.IO.Compression` است که شامل کلاس‌هایی مانند `GZipStream` و `DeflateStream` می‌شود. این کلاس‌ها به برنامه‌نویسان امکان می‌دهند تا به راحتی داده‌ها را فشرده‌سازی و فشرده‌نشده را بازیابی کنند.
در نمونه کد زیر، با استفاده از `GZipStream` نشان می‌دهیم که چگونه می‌توان رشته‌ای را فشرده کرد:
vb.net  

Imports System.IO

Imports System.IO.Compression

Imports System.Text
Public Function CompressString(input As String) As Byte()

Dim inputBytes As Byte() = Encoding.UTF
  1. GetBytes(input)

Using outputStream As New MemoryStream()

Using gzipStream As New GZipStream(outputStream, CompressionMode.Compress)

gzipStream.Write(inputBytes, 0, inputBytes.Length)

End Using

Return outputStream.ToArray()

End Using

End Function


در این کد، ابتدا رشته ورودی با استفاده از `UTF8` به بایت‌ها تبدیل می‌شود. سپس، این بایت‌ها در داخل یک `MemoryStream` قرار می‌گیرند و با `GZipStream` فشرده می‌شوند. در پایان، داده‌های فشرده‌شده به صورت آرایه بایت برگردانده می‌شود.
برای بازسازی رشته اصلی، باید عملیات معکوس، یعنی استخراج داده‌ها از حالت فشرده، انجام شود:
vb.net  

Public Function DecompressString(compressedBytes As Byte()) As String

Using inputStream As New MemoryStream(compressedBytes)

Using gzipStream As New GZipStream(inputStream, CompressionMode.Decompress)

Using reader As New StreamReader(gzipStream, Encoding.UTF8)

Return reader.ReadToEnd()

End Using

End Using

End Using

End Function


در اینجا، داده‌های فشرده وارد `MemoryStream` می‌شود، سپس با `GZipStream` باز می‌شود و در نهایت، با `StreamReader` به رشته تبدیل می‌گردد.

رمزگذاری رشته در VB.NET




پس از فشرده‌سازی، ادامه فرآیند مهم، رمزگذاری است. هدف اصلی در رمزگذاری، جلوگیری از دسترسی غیرمجاز به داده‌ها است، و این کار با استفاده از الگوریتم‌های رمزگذاری استاندارد مانند AES، DES یا Triple DES انجام می‌شود. در نمونه‌های عملی، اغلب از AES استفاده می‌شود، چرا که امنیت بالا و سرعت مناسب دارد.
در مثال زیر، نحوه‌ی رمزگذاری و رمزگشایی رشته با الگوریتم AES را نشان می‌دهیم:
vb.net  

Imports System.Security.Cryptography

Imports System.Text
Public Function EncryptString(plainText As String, key As String) As String

Dim aes As Aes = Aes.Create()

Dim keyBytes As Byte() = Encoding.UTF
  1. GetBytes(key)

Dim ivBytes As Byte() = aes.IV
aes.Key = keyBytes.Take(16).ToArray()

aes.Mode = CipherMode.CBC

aes.Padding = PaddingMode.PKCS7
Dim encryptor As ICryptoTransform = aes.CreateEncryptor(aes.Key, ivBytes)
Dim plainBytes As Byte() = Encoding.UTF
  1. GetBytes(plainText)

Dim encryptedBytes As Byte()
Using ms As New MemoryStream()

ms.Write(ivBytes, 0, ivBytes.Length)

Using cryptoStream As New CryptoStream(ms, encryptor, CryptoStreamMode.Write)

cryptoStream.Write(plainBytes, 0, plainBytes.Length)

End Using

encryptedB... ← ادامه مطلب در magicfile.ir