يعطيك العافية ولكن
المرفقات في البرنامج لا تعمل
لكني اخذت هذا الكود الموجود في الموضوع وهو عبارة عن كود يوضع في Class ولكني كيف استخدمه ؟؟ وشكراً
كود :
Imports System.IO
Imports System.Security.Cryptography
Imports System.Text
Imports System.Management
Public Class ProtectMe
#Region "Encryption"
Public Shared Function EncryptText(ByVal text As String, ByVal key As String) As String
Dim crp As New TripleDESCryptoServiceProvider
Dim uEncode As New UnicodeEncoding
Dim bytPlainText() As Byte = uEncode.GetBytes(text)
Dim stmCipherText As New MemoryStream
Dim salt() As Byte = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
Dim pdb As New Rfc2898DeriveBytes(key, salt)
Dim bytDerivedKey() As Byte = pdb.GetBytes(24)
crp.Key = bytDerivedKey
crp.IV = pdb.GetBytes(8)
Dim csEncrypted As New CryptoStream(stmCipherText, crp.CreateEncryptor(), CryptoStreamMode.Write)
csEncrypted.Write(bytPlainText, 0, bytPlainText.Length)
csEncrypted.FlushFinalBlock()
Return Convert.ToBase64String(stmCipherText.ToArray())
End Function
Public Shared Function EncryptString(ByVal passstring As String) As String
'تم إستخدام دالة أخرى لإستخراج مفتاح التفعيل
Dim uincode As New UnicodeEncoding
Dim bytestring() As Byte = uincode.GetBytes(passstring)
Dim sha As New SHA256Managed
Dim hash() As Byte = sha.ComputeHash(bytestring)
Return Convert.ToBase64String(hash)
End Function
Public Shared Function DecryptText(ByVal text As String, ByVal key As String) As String
Dim crp As TripleDESCryptoServiceProvider
crp = New TripleDESCryptoServiceProvider
Dim uEncode As New UnicodeEncoding
Dim bytCipherText() As Byte = Convert.FromBase64String(text)
Dim stmPlainText As New MemoryStream
Dim stmCipherText As New MemoryStream(bytCipherText)
Dim slt() As Byte = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
Dim pdb As New Rfc2898DeriveBytes(key, slt)
Dim bytDerivedKey() As Byte = pdb.GetBytes(24)
crp.Key = bytDerivedKey
crp.IV = pdb.GetBytes(8)
Dim csDecrypted As New CryptoStream(stmCipherText, crp.CreateDecryptor(), CryptoStreamMode.Read)
Dim sw As New StreamWriter(stmPlainText)
Dim sr As New StreamReader(csDecrypted)
sw.Write(sr.ReadToEnd)
sw.Flush()
csDecrypted.Clear()
crp.Clear()
Return uEncode.GetString(stmPlainText.ToArray())
End Function
#End Region
#Region "Registration Key"
Public Shared Function GetRegistrationKey() As String
Dim DiskID As String = Nothing
Dim DiskSerial As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
Dim DiskNo As ManagementObject
Dim array As New ArrayList
'للحصول على رقم القرص الصلب الأول بحيث لو تم إدخال فلاش ميمورى أو أى قرص خارجى أو يوجد أكثر من قرص يقوم بقراءة القرص الأول فقط
For Each DiskNo In DiskSerial.Get()
DiskID = DiskNo("Signature").ToString
array.Add(DiskID)
Next DiskNo
'تشفير رقم القرص الصلب
DiskID = EncryptText(array.Item(0).ToString, Mask)
'إضافة شرطة بين كل 5 حروف
DiskID = FinalizeKey(DiskID)
Return DiskID
End Function
#End Region
#Region "Create License File"
Public Shared Function CreateLicenseFile(ByVal Activationkey As String) As Boolean
Dim filecreator As New FileStream("License.nrd", FileMode.Create, FileAccess.Write)
Dim streamwriter As New StreamWriter(filecreator)
streamwriter.WriteLine(Activationkey)
streamwriter.Close()
filecreator.Close()
Return True
End Function
#End Region
#Region "Get Activation Key"
Public Shared Function GetActivationCode(ByVal FileName As String) As String
Dim activationkey As String = Nothing
Dim filereader As New FileStream(FileName, FileMode.Open, FileAccess.Read)
Dim streamreader As New StreamReader(filereader)
activationkey = streamreader.ReadLine
streamreader.Close()
filereader.Close()
Return activationkey
End Function
#End Region
#Region "Check if Activated"
Public Shared Function IsActivated(ByVal ActivationKey As String) As Boolean
Dim result As Boolean = False
Dim EncryptedRegistrtionKey As String = EncryptString(GetRegistrationKey())
If ActivationKey.Equals(EncryptedRegistrtionKey) Then
result = True
ProActivated = True
End If
Return result
End Function
#End Region
#Region "Check License File"
Public Shared Function CheckLicensFile(ByVal FileName As String) As Boolean
Dim result As Boolean = False
If File.Exists(FileName) Then
result = True
End If
Return result
End Function
#End Region
#Region "Property To Save Activation value"
Private Shared ProActivated As Boolean = False
Public Shared Property ProgramActivated As Boolean
Get
Return ProActivated
End Get
Set(value As Boolean)
ProActivated = value
End Set
End Property
#End Region
#Region "Mask Property"
Private Shared ReadOnly Property Mask As String
Get
Return "w9=z4j0h"
End Get
End Property
#End Region
Private Shared Function FinalizeKey(ByVal Registrationkey As String) As String
Dim txtlength As Integer = Registrationkey.Length
If txtlength < 10 Then
Return Registrationkey
Else
Dim i As Integer
For i = 5 To txtlength - 1 Step 6
Registrationkey = Registrationkey.Insert(i, "-")
Next
End If
Return Registrationkey
End Function
End Class