با سلام
جناب آقای oVERfLOW بهتر نبود که حداقل یک مثال آماده میگذاشتید بعد این راهنمایی رو میکردید!
شما برای اینکه به هدفتون برسید میتونید از Encryption (رمز کردن فایل) استفاده کنید. من یک مثال برای شما در زیر میگذارم. با استفاده از این کد شما میتونید عکسهاتون رو به صورت یک استریگ رمز شده در آورده و به هر صورت که می خواهید ذخیره و بازیابی کنید.
ابتدا باید کلاس مربوط به این کار را تعریف کنید که به شرح زیر میباشد:
Imports System.Security.Cryptography
Imports System.Text
Imports System.IO
FriendClass Encryption
FriendSharedFunction Key() AsString
Dim strKey AsString = "yek String delkhah"
Return EncryptString(strKey, strKey.Substring(2, 3))
EndFunction
PublicOverloadsSharedFunction EncryptBytes(ByVal InputString() AsByte, ByVal EncryptionKey AsString) AsByte()
If EncryptionKey IsNothingThen
EncryptionKey = Key
EndIf
Dim des AsNew TripleDESCryptoServiceProvider
Dim hashmd5 AsNew MD5CryptoServiceProvider
des.Key = hashmd5.ComputeHash(Encoding.ASCII.GetBytes(Encryp tionKey))
des.Mode = CipherMode.ECB
Dim Transform As ICryptoTransform = des.CreateEncryptor()
Dim Buffer AsByte() = InputString
Return Transform.TransformFinalBlock(Buffer, 0, Buffer.Length)
EndFunction
PublicOverloadsSharedFunction EncryptBytes(ByVal DecryptString AsString, ByVal EncryptionKey AsString) AsByte()
Return EncryptBytes(Encoding.Unicode.GetBytes(DecryptStri ng), EncryptionKey)
EndFunction
PublicSharedFunction EncryptString(ByVal InputString AsString, ByVal EncryptionKey AsString) AsString
Return Convert.ToBase64String(EncryptBytes(Encoding.Unico de.GetBytes(InputString), EncryptionKey))
EndFunction
PublicOverloadsSharedFunction DecryptBytes(ByVal DecryptBuffer() AsByte, ByVal EncryptionKey AsString) AsByte()
If EncryptionKey IsNothingThen
EncryptionKey = Key
EndIf
If DecryptBuffer IsNothingThen
ThrowNew ArgumentNullException("DecryptBuffer")
EndIf
Dim des AsNew TripleDESCryptoServiceProvider
Dim hashmd5 AsNew MD5CryptoServiceProvider
des.Key = hashmd5.ComputeHash(Encoding.ASCII.GetBytes(Encryp tionKey))
des.Mode = CipherMode.ECB
Dim Transform As ICryptoTransform = des.CreateDecryptor()
Return Transform.TransformFinalBlock(DecryptBuffer, 0, DecryptBuffer.Length)
EndFunction
PublicOverloadsSharedFunction DecryptBytes(ByVal DecryptString AsString, ByVal EncryptionKey AsString) AsByte()
Return DecryptBytes(Convert.FromBase64String(DecryptStrin g), EncryptionKey)
EndFunction
PublicSharedFunction DecryptString(ByVal DecString AsString, ByVal EncryptionKey AsString) AsString
Try
Return Encoding.Unicode.GetString(DecryptBytes(Convert.Fr omBase64String(DecString), EncryptionKey))
Catch
ReturnString.Empty
EndTry
EndFunction
EndClass
سپس در کد های برنامه برای تبدیل کردن یک عکسبه صورت رمز از:
توجه:(در این مثال عکس در یک pictureBox به نامpicLogo قرار دارد )
If Not picLogo.Image Is Nothing Then
dim encryptedImage as string
Dim msr As New MemoryStream
picLogo.Image.Save(msr, Imaging.ImageFormat.Jpeg)
Dim arrImager() As Byte = msr.GetBuffer
msr.Close()
encryptedImage = Encryption.EncryptString(Convert.ToBase64String(ar rImager), Encryption.Key)
End If
و برای تبدیل یک رمز به عکس از کد زیر استفاده کنید:
توجه: (فرض کرده ایم که عکس رمز شده در یک متغیر به نام encryptedImage قرار دارد)
Dim strImage As String = Encryption.DecryptString( encryptedImage , Encryption.Key)
If strImage.Length > 0 Then
Dim arrImage() As Byte = Convert.FromBase64String(strImage)
Dim ms As New MemoryStream(arrImage)
picLogo.Image = Image.FromStream(ms)
ms.Close()
End If
در ضمن این کد برای رمز کردن یک رشته هم میتونه به کار برده بشه. که فقط باید از توابع DecryptString و EncryptString استفاده بشه.
توجه : من با این کدها در vb.net کار کردهام. شاید با نسخههای قدیمی vb درست کار نکنه!
امیدوارم که تونسته باشم کمکی بکنم.