求RC4算法源码
我一直在找VB的RC4源码,找了很多但没有一个可以正确运行的。请帮我指出下面的错误或提供正确的源码!
Public Function Encrypt(ByVal strPassword As String, ByVal strKey As String) As String
Dim i As Long, j As Long, K As Long, x As Long
Dim KeyLen As Long, PLen As Long
Dim temp As Byte
Dim PByteArray() As Byte, KByteArray() As Byte, TByteArray(0 To 255) As Byte
KByteArray = StrConv(strKey, vbFromUnicode)
KeyLen = UBound(KByteArray) + 1
For i = 0 To 255
TByteArray(i) = i
Next
For i = 0 To 255
j = (j + TByteArray(i) + KByteArray(i Mod KeyLen)) Mod 256
temp = TByteArray(i)
TByteArray(i) = TByteArray(j)
TByteArray(j) = temp
Next
PByteArray = StrConv(strPassword, vbFromUnicode)
PLen = UBound(PByteArray)
i = 0
j = 0
For x = 0 To PLen
i = (i + 1) Mod 256
j = (j + TByteArray(i)) Mod 256
temp = TByteArray(i)
TByteArray(i) = TByteArray(j)
TByteArray(j) = temp
PByteArray(x) = PByteArray(x) Xor TByteArray((TByteArray(i) + TByteArray(j)) Mod 256)
Next
Encrypt = StrConv(PByteArray, vbUnicode)
End Function