Advertisement
Guest User

Polymorphic Stairs Encryption Source

a guest
Apr 7th, 2011
3,835
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 1.63 KB | None | 0 0
  1. Imports System.Text 'Place above Public Class
  2.  
  3. Public Class PolyMorphicStairs
  4.     Overloads Shared Function PolyCrypt(ByVal Data As String, ByVal Key As String, Optional ByVal ExtraRounds As UInteger = 0) As String
  5.   Dim buff() As Byte = PolyCrypt(Encoding.Default.GetBytes(Data), Encoding.Default.GetBytes(Key), ExtraRounds)
  6.   PolyCrypt = Encoding.Default.GetString(buff)
  7.   Erase buff
  8.     End Function
  9.     Overloads Shared Function PolyDeCrypt(ByVal Data As String, ByVal Key As String, Optional ByVal ExtraRounds As UInteger = 0) As String
  10.   Dim buff() As Byte = PolyDeCrypt(Encoding.Default.GetBytes(Data), Encoding.Default.GetBytes(Key), ExtraRounds)
  11.   PolyDeCrypt = Encoding.Default.GetString(buff)
  12.   Erase buff
  13.     End Function
  14.     Overloads Shared Function PolyCrypt(ByRef Data() As Byte, ByVal Key() As Byte, Optional ByVal ExtraRounds As UInteger = 0) As Byte()
  15.   Array.Resize(Data, Data.Length + 1)
  16.   Data(Data.Length - 1) = Convert.ToByte(New Random().Next(1, 255))
  17.   For i = (Data.Length - 1) * (ExtraRounds + 1) To 0 Step -1
  18.     Data(i Mod Data.Length) = CByte(CInt((Data(i Mod Data.Length)) + CInt(Data((i + 1) Mod Data.Length))) Mod 256) Xor Key(i Mod Key.Length)
  19.   Next
  20.   Return Data
  21.     End Function
  22.     Overloads Shared Function PolyDeCrypt(ByRef Data() As Byte, ByVal Key() As Byte, Optional ByVal ExtraRounds As UInteger = 0) As Byte()
  23.   For i = 0 To (Data.Length - 1) * (ExtraRounds + 1)
  24.     Data(i Mod Data.Length) = CByte((CInt(Data(i Mod Data.Length) Xor Key(i Mod Key.Length)) - CInt(Data((i + 1) Mod Data.Length)) + 256) Mod 256)
  25.   Next
  26.   Array.Resize(Data, Data.Length - 1)
  27.   Return Data
  28.     End Function
  29. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement