通过VB实现简单凯撒密码加密解密
加密流程
解密流程
实现代码
窗体有两个,一个加密一个解密,用到的控件只有按钮、文本框和标签框,可以根据下面的代码和截图画
加密代码
Dim k As Integer
Private Sub Command1_Click()
Randomize
Label3.Caption = Int((25 * Rnd + 1))
k = Label3.Caption
End Sub
Private Sub Command2_Click()
Text2.Text = ""
Dim i As Integer, str As String
Dim ascstr() As String
str = LCase(Text1.Text)
ReDim ascstr(Len(str)) As String
For i = 1 To Len(str)
If (CStr(Asc(Mid(str, i, 1)) + k)) > 122 Then
ascstr(i - 1) = CStr(Asc(Mid(str, i, 1)) + k - 26)
Else
ascstr(i - 1) = CStr(Asc(Mid(str, i, 1)) + k)
End If
Text2.Text = Text2.Text & Chr(ascstr(i - 1))
Next i
End Sub
Private Sub Form_Load()
Randomize
Label3.Caption = Int((25 * Rnd + 1))
k = Label3.Caption
End Sub
解密代码
Dim decrypt() As String
Private Sub Command2_Click()
str1 = Text1.Text
Text2.Text = ""
ReDim decrypt(Len(str1)) As String
For k = 1 To 25
Text2.Text = Text2.Text & "当前尝试的k值为:" & k & Chr(13) & Chr(10)
For i = 1 To Len(str1)
If (CStr(Asc(Mid(str1, i, 1)) - k)) < 97 Then
decrypt(i - 1) = CStr(Asc(Mid(str1, i, 1)) - k + 26)
Else
decrypt(i - 1) = CStr(Asc(Mid(str1, i, 1)) - k)
End If
Text2.Text = Text2.Text & Chr(decrypt(i - 1))
Next
Text2.Text = Text2.Text & Chr(13) & Chr(10)
Next
End Sub
最终效果