Files
ToolCollection/ToolCollection/ClassPasswordCrypto.vb
OlgunR 2a4de5ddf8 2.10.4.0 - Refactor: remove license mgmt, add password crypto class
Replaced all license management classes (ClassLicense, ClassLicenses, ClassLicenseManager) with a new ClassPasswordCrypto for password encryption/decryption using Rijndael (AES). Updated all usages to call EncodePassword/DecodePassword instead of license key methods. Removed obsolete license-related code and files from the project. Incremented assembly version to 2.10.4.0. Cleaned up imports and updated the project file to reflect these changes. No license logic remains; only password crypto is handled.
2026-05-07 13:21:06 +02:00

129 lines
3.7 KiB
VB.net

Imports System.Security.Cryptography
Imports System.Text
Public Class ClassPasswordCrypto
Private _password As String
' ++++++++++++++++++++++++++++++++++++++++++++++ Properties ++++++++++++++++++++++++++++++++++++++++++++++
''' <summary>
''' Liefert das Passwort zum Entschlüsseln des Lizenzschlüssels
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public ReadOnly Property Password() As String
Get
Return Me._password
End Get
End Property
' ++++++++++++++++++++++++++++++++++++++++++++++ Methoden ++++++++++++++++++++++++++++++++++++++++++++++
''' <summary>
''' Konstruktor für den Lizenz-Manager ohne License load
''' </summary>
''' <param name="password">Passwort zum Entschlüsseln des Lizenzkeys</param>
''' <remarks></remarks>
Sub New(ByVal password As String)
Me._password = password
End Sub
''' <summary>
''' Codiert eine Zeichenkette
''' </summary>
''' <param name="str">zu verschlüsselnde Zeichenkette</param>
''' <param name="password">das zur Verschlüsselung verwendete Passwort</param>
''' <returns>liefert eine verschlüsselte Zeichenkette</returns>
''' <remarks></remarks>
Public Function EncodePassword(ByVal str As String, ByVal password As String)
Dim rd As New RijndaelManaged
Dim md5 As New MD5CryptoServiceProvider
Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(password))
md5.Clear()
rd.Key = key
rd.GenerateIV()
Dim iv() As Byte = rd.IV
Dim ms As New IO.MemoryStream
ms.Write(iv, 0, iv.Length)
Dim cs As New CryptoStream(ms, rd.CreateEncryptor, CryptoStreamMode.Write)
Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes(str)
cs.Write(data, 0, data.Length)
cs.FlushFinalBlock()
Dim encdata() As Byte = ms.ToArray()
Dim result As String = Convert.ToBase64String(encdata)
cs.Close()
rd.Clear()
Return result
End Function
''' <summary>
''' Decodiert den verschlüsselten Lizenzkey
''' </summary>
''' <param name="licenseCodeStr">verschlüsselter Lizenzkey</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function DecodePassword(ByVal licenseCodeStr As String)
Try
Dim rd As New RijndaelManaged
Dim rijndaelIvLength As Integer = 16
Dim md5 As New MD5CryptoServiceProvider
Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(Me._password))
md5.Clear()
Dim encdata() As Byte
Dim ms
Dim iv(15) As Byte
Dim cs As CryptoStream
Dim data() As Byte
Try
encdata = Convert.FromBase64String(licenseCodeStr)
ms = New IO.MemoryStream(encdata)
ms.Read(iv, 0, rijndaelIvLength)
rd.IV = iv
rd.Key = key
cs = New CryptoStream(ms, rd.CreateDecryptor, CryptoStreamMode.Read)
ReDim data(ms.Length - rijndaelIvLength)
Catch ex As Exception
Return Nothing
End Try
Dim i As Integer = 0
Try
i = cs.Read(data, 0, data.Length)
Dim result As String = System.Text.Encoding.UTF8.GetString(data, 0, i)
cs.Close()
rd.Clear()
Return result
Catch ex As Exception
'MsgBox("Falsches Passwort")
Return Nothing
End Try
Catch ex As Exception
End Try
'MsgBox("Falsches Passwort")
Return Nothing
End Function
End Class