Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Text
- Module RC4Mod
- Public Function rc4(ByVal message As String, ByVal password As String) As String
- Dim i As Integer = 0
- Dim j As Integer = 0
- Dim cipher As New StringBuilder
- Dim returnCipher As String = String.Empty
- Dim sbox As Integer() = New Integer(256) {}
- Dim key As Integer() = New Integer(256) {}
- Dim intLength As Integer = password.Length
- Dim a As Integer = 0
- While a <= 255
- Dim ctmp As Char = (password.Substring((a Mod intLength), 1).ToCharArray()(0))
- key(a) = Microsoft.VisualBasic.Strings.Asc(ctmp)
- sbox(a) = a
- System.Math.Max(System.Threading.Interlocked.Increment(a), a - 1)
- End While
- Dim x As Integer = 0
- Dim b As Integer = 0
- While b <= 255
- x = (x + sbox(b) + key(b)) Mod 256
- Dim tempSwap As Integer = sbox(b)
- sbox(b) = sbox(x)
- sbox(x) = tempSwap
- System.Math.Max(System.Threading.Interlocked.Increment(b), b - 1)
- End While
- a = 1
- While a <= message.Length
- Dim itmp As Integer = 0
- i = (i + 1) Mod 256
- j = (j + sbox(i)) Mod 256
- itmp = sbox(i)
- sbox(i) = sbox(j)
- sbox(j) = itmp
- Dim k As Integer = sbox((sbox(i) + sbox(j)) Mod 256)
- Dim ctmp As Char = message.Substring(a - 1, 1).ToCharArray()(0)
- itmp = Asc(ctmp)
- Dim cipherby As Integer = itmp Xor k
- cipher.Append(Chr(cipherby))
- System.Math.Max(System.Threading.Interlocked.Increment(a), a - 1)
- End While
- returnCipher = cipher.ToString
- cipher.Length = 0
- Return returnCipher
- End Function
- End Module
Add Comment
Please, Sign In to add comment