Public Function Encode(ByVal S As String) As String '加密 On Error GoTo acd If Len(S) = 0 Then Exit Function Dim Buff() As Byte Buff = StrConv(S, vbFromUnicode) Dim i As Long Dim j As Byte Dim k As Byte, m As Byte Dim mstr As String mstr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz" Dim outs As String i = UBound(Buff) + 1 outs = Space(2 * i) Dim Temps As String For i = 0 To UBound(Buff) Randomize Time j = CByte(5 * (Math.Rnd()) + 0) '最大产生的随机数只能是5,不能再大了,再大的话,就要多用一个字节 Buff(i) = Buff(i) Xor j k = Buff(i) Mod Len(mstr) m = Buff(i) \ Len(mstr) m = m * 2 ^ 3 + j Temps = Mid(mstr, k + 1, 1) + Mid(mstr, m + 1, 1) Mid(outs, 2 * i + 1, 2) = Temps Next Encode = outs Exit Function acd: End FunctionPublic Function Decode(ByVal S As String) As String '解密 On Error GoTo acd Dim i As Long Dim j As Byte Dim k As Byte Dim m As Byte Dim mstr As String mstr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz" Dim t1 As String, t2 As String Dim Buff() As Byte Dim n As Long n = 0 For i = 1 To Len(S) Step 2 t1 = Mid(S, i, 1) t2 = Mid(S, i + 1, 1) k = InStr(1, mstr, t1) - 1 m = InStr(1, mstr, t2) - 1 j = m \ 2 ^ 3 m = m - j * 2 ^ 3 ReDim Preserve Buff(n) Buff(n) = j * Len(mstr) + k Buff(n) = Buff(n) Xor m n = n + 1 Next Decode = StrConv(Buff, vbUnicode) Exit Function acd: Decode = "" End FunctionPrivate Sub Command1_Click() Text2.Text = Encode(Text1.Text) End SubPrivate Sub Command2_Click() Text3.Text = Decode(Text2.Text) End Sub
Encode就是加密一个字符串的函数.Decode就是将已经加密的字符串还原
你可以画一个textbox控件.将你的字符串输入到这个控件里.
显示不用TEXT框的话怎么做呢,输入可以用inputbox
Private Sub Command5_Click() Dim tempStr As String tempStr = InputBox("请输入字符:") Text1.Text = Encode(tempStr) '将输入的字符串加密显示在text1中 Text2.Text = Decode(Text1.Text) '将还原的字符串显示在text2中End Sub
不用TEXT框的话该怎么做啊,我需要有3个命令按钮,一个输入,一个加密显示,一个解密显示啊,请教啊
'这样Dim Estr As String Dim Dstr As String Dim str As String Public Function Encode(ByVal S As String) As String '加密 On Error GoTo acd If Len(S) = 0 Then Exit Function Dim Buff() As Byte Buff = StrConv(S, vbFromUnicode) Dim i As Long Dim j As Byte Dim k As Byte, m As Byte Dim mstr As String mstr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz" Dim outs As String i = UBound(Buff) + 1 outs = Space(2 * i) Dim Temps As String For i = 0 To UBound(Buff) Randomize Time j = CByte(5 * (Math.Rnd()) + 0) '最大产生的随机数只能是5,不能再大了,再大的话,就要多用一个字节 Buff(i) = Buff(i) Xor j k = Buff(i) Mod Len(mstr) m = Buff(i) \ Len(mstr) m = m * 2 ^ 3 + j Temps = Mid(mstr, k + 1, 1) + Mid(mstr, m + 1, 1) Mid(outs, 2 * i + 1, 2) = Temps Next Encode = outs Exit Function acd: End FunctionPublic Function Decode(ByVal S As String) As String '解密 On Error GoTo acd Dim i As Long Dim j As Byte Dim k As Byte Dim m As Byte Dim mstr As String mstr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz" Dim t1 As String, t2 As String Dim Buff() As Byte Dim n As Long n = 0 For i = 1 To Len(S) Step 2 t1 = Mid(S, i, 1) t2 = Mid(S, i + 1, 1) k = InStr(1, mstr, t1) - 1 m = InStr(1, mstr, t2) - 1 j = m \ 2 ^ 3 m = m - j * 2 ^ 3 ReDim Preserve Buff(n) Buff(n) = j * Len(mstr) + k Buff(n) = Buff(n) Xor m n = n + 1 Next Decode = StrConv(Buff, vbUnicode) Exit Function acd: Decode = "" End FunctionPrivate Sub Command1_Click() str = InputBox("请输入字符:") Estr = Encode(str) Dstr = Decode(Estr) End SubPrivate Sub Command2_Click() MsgBox "加密后的字符是: " & Estr End SubPrivate Sub Command3_Click() MsgBox "还原后的字符是: " & Dstr End Sub
On Error GoTo acd
If Len(S) = 0 Then Exit Function
Dim Buff() As Byte
Buff = StrConv(S, vbFromUnicode)
Dim i As Long
Dim j As Byte
Dim k As Byte, m As Byte
Dim mstr As String
mstr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"
Dim outs As String
i = UBound(Buff) + 1
outs = Space(2 * i)
Dim Temps As String
For i = 0 To UBound(Buff)
Randomize Time
j = CByte(5 * (Math.Rnd()) + 0) '最大产生的随机数只能是5,不能再大了,再大的话,就要多用一个字节
Buff(i) = Buff(i) Xor j
k = Buff(i) Mod Len(mstr)
m = Buff(i) \ Len(mstr)
m = m * 2 ^ 3 + j
Temps = Mid(mstr, k + 1, 1) + Mid(mstr, m + 1, 1)
Mid(outs, 2 * i + 1, 2) = Temps
Next
Encode = outs
Exit Function
acd:
End FunctionPublic Function Decode(ByVal S As String) As String '解密
On Error GoTo acd
Dim i As Long
Dim j As Byte
Dim k As Byte
Dim m As Byte
Dim mstr As String
mstr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"
Dim t1 As String, t2 As String
Dim Buff() As Byte
Dim n As Long
n = 0
For i = 1 To Len(S) Step 2
t1 = Mid(S, i, 1)
t2 = Mid(S, i + 1, 1)
k = InStr(1, mstr, t1) - 1
m = InStr(1, mstr, t2) - 1
j = m \ 2 ^ 3
m = m - j * 2 ^ 3
ReDim Preserve Buff(n)
Buff(n) = j * Len(mstr) + k
Buff(n) = Buff(n) Xor m
n = n + 1
Next
Decode = StrConv(Buff, vbUnicode)
Exit Function
acd:
Decode = ""
End FunctionPrivate Sub Command1_Click()
Text2.Text = Encode(Text1.Text)
End SubPrivate Sub Command2_Click()
Text3.Text = Decode(Text2.Text)
End Sub
Dim tempStr As String
tempStr = InputBox("请输入字符:")
Text1.Text = Encode(tempStr) '将输入的字符串加密显示在text1中
Text2.Text = Decode(Text1.Text) '将还原的字符串显示在text2中End Sub
Dim Dstr As String
Dim str As String
Public Function Encode(ByVal S As String) As String '加密
On Error GoTo acd
If Len(S) = 0 Then Exit Function
Dim Buff() As Byte
Buff = StrConv(S, vbFromUnicode)
Dim i As Long
Dim j As Byte
Dim k As Byte, m As Byte
Dim mstr As String
mstr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"
Dim outs As String
i = UBound(Buff) + 1
outs = Space(2 * i)
Dim Temps As String
For i = 0 To UBound(Buff)
Randomize Time
j = CByte(5 * (Math.Rnd()) + 0) '最大产生的随机数只能是5,不能再大了,再大的话,就要多用一个字节
Buff(i) = Buff(i) Xor j
k = Buff(i) Mod Len(mstr)
m = Buff(i) \ Len(mstr)
m = m * 2 ^ 3 + j
Temps = Mid(mstr, k + 1, 1) + Mid(mstr, m + 1, 1)
Mid(outs, 2 * i + 1, 2) = Temps
Next
Encode = outs
Exit Function
acd:
End FunctionPublic Function Decode(ByVal S As String) As String '解密
On Error GoTo acd
Dim i As Long
Dim j As Byte
Dim k As Byte
Dim m As Byte
Dim mstr As String
mstr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"
Dim t1 As String, t2 As String
Dim Buff() As Byte
Dim n As Long
n = 0
For i = 1 To Len(S) Step 2
t1 = Mid(S, i, 1)
t2 = Mid(S, i + 1, 1)
k = InStr(1, mstr, t1) - 1
m = InStr(1, mstr, t2) - 1
j = m \ 2 ^ 3
m = m - j * 2 ^ 3
ReDim Preserve Buff(n)
Buff(n) = j * Len(mstr) + k
Buff(n) = Buff(n) Xor m
n = n + 1
Next
Decode = StrConv(Buff, vbUnicode)
Exit Function
acd:
Decode = ""
End FunctionPrivate Sub Command1_Click()
str = InputBox("请输入字符:")
Estr = Encode(str)
Dstr = Decode(Estr)
End SubPrivate Sub Command2_Click()
MsgBox "加密后的字符是: " & Estr
End SubPrivate Sub Command3_Click()
MsgBox "还原后的字符是: " & Dstr
End Sub