Advertisement
Guest User

Poly RC4

a guest
Aug 7th, 2016
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.05 KB | None | 0 0
  1. Imports System.Text
  2.  
  3. Public Class Polymorphic_RC4
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement