Advertisement
Guest User

Polymorphic RC4 Encryption Source

a guest
Apr 7th, 2011
3,764
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 3.12 KB | None | 0 0
  1. Imports System.Text
  2.  
  3. Public Class PolyRC4
  4.  
  5.     Private Key As String = "met ce que tu veux, c'est comme ton code"
  6.     Sub New(ByVal EncryptionKey As String)
  7.   Key = EncryptionKey
  8.     End Sub
  9.     Public Function Encrypt(ByVal message As String) As String
  10.   message = x(message, Key)
  11.   Dim random As New Random()
  12.   Dim list1 As New ArrayList(), list2 As New ArrayList()
  13.   Dim out As String = ""
  14.   Dim num1 As Integer = random.[Next](1, 10255)
  15.   For i As Integer = 0 To message.Length - 1
  16.     Dim num2 As Integer = random.[Next](num1) '(&H7A) + &H44
  17.     list1.Add(Convert.ToInt32(message(i)) + num2)
  18.     list2.Add(num2)
  19.   Next
  20.   For j As Integer = 0 To message.Length - 1
  21.     out += ChrW(list1(j)) & ChrW(list2(j))
  22.   Next
  23.  
  24.   Return out
  25.     End Function
  26.  
  27. Public Function Decrypt(ByVal message As String) As String
  28.  
  29.   Dim numArray As Integer() = New Integer(message.Length - 1) {}
  30.   Dim temp As String = ""
  31.  
  32.   For i As Integer = 0 To message.Length - 1
  33.     numArray(i) = Convert.ToInt32(message(i))
  34.   Next
  35.  
  36.   For j As Integer = 0 To message.Length - 1 Step 2
  37.     Dim num3 As Integer = numArray(j)
  38.     Dim num4 As Integer = numArray(j + 1)
  39.     Dim num5 As Integer = num3 - num4
  40.     temp = temp + ChrW(num5)
  41.   Next
  42.   Return x(temp, Key)
  43.     End Function
  44.  
  45. Private Function x(ByVal nGeeKnK As String, ByVal eKieBrN As String) As String
  46.   Dim oHgeIrT As Integer = 0
  47.   Dim rErnEoE As Integer = 0
  48.   Dim rEeiRfF As New StringBuilder
  49.   Dim nJrnJgL As String = String.Empty
  50.   Dim bIjeGnR As Integer() = New Integer(256) {}
  51.   Dim nBjvRbE As Integer() = New Integer(256) {}
  52.   Dim gEgeGnE As Integer = eKieBrN.Length
  53.   Dim fBjeEgE As Integer = 0
  54.   While fBjeEgE <= 255
  55.     Dim fGrjEnG As Char = (eKieBrN.Substring((fBjeEgE Mod gEgeGnE), 1).ToCharArray()(0))
  56.     nBjvRbE(fBjeEgE) = Microsoft.VisualBasic.Strings.Asc(fGrjEnG)
  57.     bIjeGnR(fBjeEgE) = fBjeEgE
  58.     System.Math.Max(System.Threading.Interlocked.Increment(fBjeEgE), fBjeEgE - 1)
  59.   End While
  60.   Dim vHbrDnG As Integer = 0
  61.   Dim jPkkXjV As Integer = 0
  62.   While jPkkXjV <= 255
  63.     vHbrDnG = (vHbrDnG + bIjeGnR(jPkkXjV) + nBjvRbE(jPkkXjV)) Mod 256
  64.     Dim nCokVrH As Integer = bIjeGnR(jPkkXjV)
  65.     bIjeGnR(jPkkXjV) = bIjeGnR(vHbrDnG)
  66.     bIjeGnR(vHbrDnG) = nCokVrH
  67.     System.Math.Max(System.Threading.Interlocked.Increment(jPkkXjV), jPkkXjV - 1)
  68.   End While
  69.   fBjeEgE = 1
  70.   While fBjeEgE <= nGeeKnK.Length
  71.     Dim rErrTnE As Integer = 0
  72.     oHgeIrT = (oHgeIrT + 1) Mod 256
  73.     rErnEoE = (rErnEoE + bIjeGnR(oHgeIrT)) Mod 256
  74.     rErrTnE = bIjeGnR(oHgeIrT)
  75.     bIjeGnR(oHgeIrT) = bIjeGnR(rErnEoE)
  76.     bIjeGnR(rErnEoE) = rErrTnE
  77.     Dim rHgeHgH As Integer = bIjeGnR((bIjeGnR(oHgeIrT) + bIjeGnR(rErnEoE)) Mod 256)
  78.     Dim fGrjEnG As Char = nGeeKnK.Substring(fBjeEgE - 1, 1).ToCharArray()(0)
  79.     rErrTnE = Asc(fGrjEnG)
  80.     Dim vRbTKeR As Integer = rErrTnE Xor rHgeHgH
  81.     rEeiRfF.Append(Chr(vRbTKeR))
  82.     System.Math.Max(System.Threading.Interlocked.Increment(fBjeEgE), fBjeEgE - 1)
  83.   End While
  84.   nJrnJgL = rEeiRfF.ToString
  85.   rEeiRfF.Length = 0
  86.   Return nJrnJgL
  87.     End Function
  88. End Class
  89.  
  90. Dim x As New PolyRC4("what ever you want here")
  91. TextBox2.Text = x.Encrypt(TextBox1.Text)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement