initial commit
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
Imports System.Text
|
||||
Public Class PXOR
|
||||
Private regKey As String = ""
|
||||
Public Property Key() As String
|
||||
Get
|
||||
Return regKey
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
regKey = value
|
||||
End Set
|
||||
End Property
|
||||
Public Sub New(ByVal Key As String)
|
||||
Me.Key = Key
|
||||
End Sub
|
||||
Public Sub New()
|
||||
Me.Key = ""
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Public Function PolyCrypt(ByVal Data As String) As String
|
||||
Return Encoding.Default.GetString(PolyCrypt(Encoding.Default.GetBytes(Data)))
|
||||
End Function
|
||||
Public Function PolyDeCrypt(ByVal Data As String) As String
|
||||
Return Encoding.Default.GetString(PolyDeCrypt(Encoding.Default.GetBytes(Data)))
|
||||
End Function
|
||||
Public Function PolyCrypt(ByVal Data() As Byte) As Byte()
|
||||
Dim ReturnBuffer(Data.Length) As Byte
|
||||
ReturnBuffer(0) = Convert.ToByte(New Random().Next(1, 255))
|
||||
For i = 0 To Data.Length - 1
|
||||
ReturnBuffer(i + 1) = ModuloByte(ReturnBuffer(i), Data(i))
|
||||
Next
|
||||
Return XorCrypt(ReturnBuffer, Encoding.Default.GetBytes(Key))
|
||||
End Function
|
||||
Public Function PolyDeCrypt(ByVal Data() As Byte) As Byte()
|
||||
Data = XorCrypt(Data, Encoding.Default.GetBytes(Key))
|
||||
Dim ReturnBuffer(Data.Length - 2) As Byte
|
||||
For i = Data.Length - 1 To 1 Step -1
|
||||
ReturnBuffer(i - 1) = ModuloByte(Data(i), -Data(i - 1))
|
||||
Next
|
||||
Return ReturnBuffer
|
||||
End Function
|
||||
Private Function ModuloByte(ByVal MyByte As Byte, ByVal Addition As Int16) As Byte
|
||||
While Addition < 0
|
||||
Addition += 256
|
||||
End While
|
||||
Return Convert.ToByte((MyByte + Addition) Mod 256)
|
||||
End Function
|
||||
Private Function XorCrypt(ByVal Data() As Byte, ByVal Key() As Byte) As Byte()
|
||||
If Key.Length <> 0 Then
|
||||
For i = 0 To Data.Length - 1
|
||||
Data(i) = Data(i) Xor ModuloByte(Key(i Mod Key.Length), [Key](Key(i Mod Key.Length) Mod Key.Length)) Xor [Key](((i + (i Mod 7)) Mod Key.Length) Mod Key.Length)
|
||||
Next
|
||||
End If
|
||||
Return Data
|
||||
End Function
|
||||
Public Function XorCrypt(ByVal Data As String, ByVal Key As String) As String
|
||||
Return Encoding.Default.GetString(XorCrypt(Encoding.Default.GetBytes(Data), Encoding.Default.GetBytes(Key)))
|
||||
End Function
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user