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