RC4 加密算法asp版

 1 Function RC4(data, Key)
 2     Dim s(256), k(256), outstr, Acii, j, tst, xre1, xre2, temp, x, t, y, qwe, zxc
 3     For i = 1 To 256
 4         s(i) = i - 1
 5     Next
 6     j = 1
 7     For i = 1 To 256
 8         dex = dex + 1
 9         If j > Len(Key) Then
10             j = 1
11         End If
12         Acii = Asc(Mid(Key, j, 1))
13         If Acii < 0 Then
14             tst = Hex(Acii)
15             xre1 = Mid(tst, 1, 2)
16             xre2 = Mid(tst, 3, 2)
17             k(i) = Int("&H" & xre1)
18             k(i + 1) = Int("&H" & xre2)
19             i = i + 1
20         Else
21             k(i) = Acii
22         End If
23         j = j + 1
24     Next
25     j = 0
26     For i = 1 To 256
27         j = (j + s(i) + k(i)) Mod 256 + 1
28         temp = s(i)
29         s(i) = s(j)
30         s(j) = temp
31     Next
32     j = 0
33     For i = 1 To Len(data)
34         x = (x + 1) Mod 256 + 1
35         j = (j + s(x)) Mod 256 + 1
36         temp = s(x)
37         s(x) = s(j)
38         s(j) = temp
39         t = (s(x) + s(j) Mod 256) Mod 256 + 1
40         y = s(t)
41         Acii = Asc(Mid(data, i, 1))
42         If Acii < 0 Then
43             tst = Hex(Acii)
44             qwe = qwe + 1
45             If qwe >= 2 Then
46                 zxc = Int("&H" & Mid(tst, 3, 2))
47                 qwe = 0
48             Else
49                 zxc = Int("&H" & Mid(tst, 1, 2))
50                 i = i -1
51             End If
52         Else
53             zxc = Acii
54         End If
55         outstr = outstr & Bitsor(zxc, y)
56     Next
57     RC4 = outstr
58 End Function
59 
60 Function Bitsor(x, y)
61     Dim Mx, Hx, Wx
62     Mx = 0
63     Hx = 0
64     Wx = 0
65     Mx = x And y
66     Mx = Mx * 2
67     Hx = Hex(X + y - Mx)
68     If Len(Hx) > 1 Then
69         Wx = Hx
70     Else
71         Wx = "0" & Hx
72     End If
73     Bitsor = Wx
74 End Function

 

posted on 2014-03-23 09:08  s3  阅读(1075)  评论(0编辑  收藏  举报