RC4经典加密算法VB版本代码

 

public Sub main()
Dim key As String
For i = 1 To 16
Randomize
key 
= key & Chr(Rnd * 255)
Next i
MsgBox RC4(RC4("Welcome To Plindge Studio!", key), key)
End Sub

Public Function RC4(inp As String, key As String) As String
Dim S(0 To 255) As Byte, K(0 To 255) As Byte, i As Long
Dim j As Long, temp As Byte, Y As Byte, t As Long, x As Long
Dim Outp As String 
for i = 0 To 255
S(i) 
= i
Next
j 
= 1
For i = 0 To 255
If j > Len(key) Then j = 1
K(i) 
= Asc(Mid(key, j, 1))
j 
= j + 1
Next i
j 
= 0
For i = 0 To 255
j 
= (j + S(i) + K(i)) Mod 256
temp 
= S(i)
S(i) 
= S(j)
S(j) 
= temp
Next i
i 
= 0
j 
= 0
For x = 1 To Len(inp)
i 
= (i + 1) Mod 256
j 
= (j + S(i)) Mod 256
temp 
= S(i)
S(i) 
= S(j)
S(j) 
= temp
t 
= (S(i) + (S(j) Mod 256)) Mod 256
Y 
= S(t)
outp 
= Outp & Chr(Asc(Mid(inp, x, 1)) Xor Y)
Next
RC4 
= Outp
End Function
posted @ 2005-11-09 10:24  泡面 @ 幸福  阅读(652)  评论(1)    收藏  举报