hello大家好,今天我们来利用VB制作一款简易的加密、解密软件。
在计算机技术高度发达的今天,信息的安全就显得尤为重要了。因此,对信息的加密和解密也就自然而然成为一项重要的工作。那么,我们就从最简单的加密和解密做起,希望能够为大家打开信息加密和解密的大门。
关键技术
本例加密的思路是:
将需要加密的字母,翻译为ASCII码,然后加上一个固定的值后(密钥),转换为新的ASCII码,再将这个新的ASCII码翻译为一个新的字母。例如,密钥如果为2,那么字母A则转化为C,字母d则转化为f,而字母z则变为B。以此类推。相应的解密时,则进行反向操作。因此,只有知道密钥的人,才能够读解密,否则看到的将是毫无意义的密文。
扩展知识
字母A-z的ASCII码为65-122
接下来,我们看下这个案例具体如何实现。
案例实现
步骤一:
按照下图,建立程序界面,即一个窗体、4个文本框、2个标签和2个按钮。
步骤二:
编写窗体加载事件的代码,如下所示:
Private Sub Form_Load() Text1 = "" Text2 = "" Text3 = "" Text4 = ""End Sub
步骤三:
编写加密按钮的代码,如下所示:
'加密Private Sub Command2_Click() Dim N%, StrN1$, str2$, m%, i% '检查是否输入明文 If Len(Text1) = 0 Then MsgBox "请输入明文", vbInformation, "提示" Exit Sub End If '检查是否输入密钥 If Len(Text2) = 0 Then MsgBox "请输入密钥", vbInformation, "提示" Exit Sub End If If IsNumeric(Text2) = False Then MsgBox "此处密钥需要为数字", vbInformation, "提示" Exit Sub End If If Val(Text2) <= 1 Or Val(Text2) >= 56 Then MsgBox "请输入大于1小于56的数字密钥", vbInformation, "提示" End If '计算明文长度 N = Len(Text1) For i = 1 To N '取第N个字符 StrN1 = Mid(Text1, i, 1) '如果字符在A~z之内 If Asc(StrN1) >= 65 And Asc(StrN1) <= 122 Then '计算第N个字符的ASCCI码加上密钥后的新值 m = Asc(StrN1) + Val(Text2) If m > 122 Then '如果该值超过122,那么将其从65(即A)重新开始计算 m = (m Mod 122) + 64 End If '计算加密后的字符串 str2 = str2 & Chr(m) End If Next i Text3 = str2End Sub
步骤四:
编写解密按钮的代码,如下所示:Private Sub Command1_Click() Dim N%, StrN1$, str2$, m%, i% '检查是否输入明文 If Len(Text1) = 0 Then MsgBox "请输入明文", vbInformation, "提示" Exit Sub End If '检查是否输入密钥 If Len(Text2) = 0 Then MsgBox "请输入密钥", vbInformation, "提示" Exit Sub End If If IsNumeric(Text2) = False Then MsgBox "此处密钥需要为数字", vbInformation, "提示" Exit Sub End If If Val(Text2) <= 1 Or Val(Text2) >= 56 Then MsgBox "请输入大于1小于56的数字密钥", vbInformation, "提示" End If '计算明文长度 N = Len(Text1) For i = 1 To N '取第N个字符 StrN1 = Mid(Text1, i, 1) '如果字符在A~z之内 If Asc(StrN1) >= 65 And Asc(StrN1) <= 122 Then '计算第N个字符的ASCCI码减去密钥后的新值 m = Asc(StrN1) - Val(Text2) If m < 65 Then '如果该值低于65,那么将其从122(即z)重新开始计算 m = 123 - (65 Mod m) End If '计算解密密后的字符串 str2 = str2 & Chr(m) End If Next i Text4 = str2End Sub
步骤五:
运行代码,测试效果。
输入要加密的单词(本例必须全部为字母),并输入密钥(我这里定义为1~65之间),然后单击加密按钮,则将明文进行了加密,如下所示:
如果需要解密,那么将密文输入到第一个文本框,并输入密钥,然后单击解密按钮,则可以得到原来的明文。
好了,各位小伙伴你们学到了吗?快自己做一个偷偷和基友聊天用吧。
案例思考
本文只是实现了纯字母的加密,那么如果要对所有字符实现加密,比如汉子、空格、特殊字符等,那么其实方法也是一样的,只需要将对应的ASCII码进行加减操作即可。