Option Explicit
Private Const conKey = "E54YBYB5eytn7kVSr6ub56uyAwfrwerf" 'conKey是加密时的密钥,可以自己更改
'========================================================================
'RC4加密函数
'适用于使用UNICODE的双字节ACCESS,测试证明支持中英文混合的文本加密
'
'加密调用方法:=RC4("需加密的字符串")
'解密调用方法:=RC4("加密后的字符串")
'========================================================================
Public Function RC4(strInp 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(conKey) Then j = 1
k(i) = Asc(Mid(conKey, 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(strInp)
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 & ChrW(AscW(Mid(strInp, X, 1)) Xor Y)
Next
RC4 = Outp
End Function
以上代码加密多字节可以,但解密时超过两个字节就出错,请老师指点下应如何解决
Private Const conKey = "E54YBYB5eytn7kVSr6ub56uyAwfrwerf" 'conKey是加密时的密钥,可以自己更改
'========================================================================
'RC4加密函数
'适用于使用UNICODE的双字节ACCESS,测试证明支持中英文混合的文本加密
'
'加密调用方法:=RC4("需加密的字符串")
'解密调用方法:=RC4("加密后的字符串")
'========================================================================
Public Function RC4(strInp 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(conKey) Then j = 1
k(i) = Asc(Mid(conKey, 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(strInp)
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 & ChrW(AscW(Mid(strInp, X, 1)) Xor Y)
Next
RC4 = Outp
End Function
以上代码加密多字节可以,但解密时超过两个字节就出错,请老师指点下应如何解决
If RC4(rs("admin_pwd")) = strPassword Then '若密码相同
请大师们帮我看下应如何改啊
Private Sub Command1_Click()
Label1.Caption = RC4(RC4(Text1.Text))
End Sub