form标签的action之前 加密_简易加密解密软件

hello大家好,今天我们来利用VB制作一款简易的加密、解密软件。 在计算机技术高度发达的今天,信息的安全就显得尤为重要了。因此,对信息的加密和解密也就自然而然成为一项重要的工作。那么,我们就从最简单的加密和解密做起,希望能够为大家打开信息加密和解密的大门。

7430d8001a20fa2183dbd4f197907d14.png

关键技术

本例加密的思路是:

将需要加密的字母,翻译为ASCII码,然后加上一个固定的值后(密钥),转换为新的ASCII码,再将这个新的ASCII码翻译为一个新的字母。例如,密钥如果为2,那么字母A则转化为C,字母d则转化为f,而字母z则变为B。以此类推。相应的解密时,则进行反向操作。因此,只有知道密钥的人,才能够读解密,否则看到的将是毫无意义的密文。

扩展知识

字母A-z的ASCII码为65-122

接下来,我们看下这个案例具体如何实现。

案例实现

步骤一:

按照下图,建立程序界面,即一个窗体、4个文本框、2个标签和2个按钮。

2912945841f47b303153c3d875740fa5.png

步骤二:

编写窗体加载事件的代码,如下所示:

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之间),然后单击加密按钮,则将明文进行了加密,如下所示:

2ba22a71de4ecb8437e05e0b4777c017.png

如果需要解密,那么将密文输入到第一个文本框,并输入密钥,然后单击解密按钮,则可以得到原来的明文。

9517be57280dace9ccce4a609927bcf3.png

好了,各位小伙伴你们学到了吗?快自己做一个偷偷和基友聊天用吧。

案例思考

本文只是实现了纯字母的加密,那么如果要对所有字符实现加密,比如汉子、空格、特殊字符等,那么其实方法也是一样的,只需要将对应的ASCII码进行加减操作即可。

9a66940c146334143ba99c4f09db57bb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 JSP 中对登录时的 POST 请求的参数进行 MD5 加密,可以使用以下代码: ```java <% String username = request.getParameter("username"); // 获取 username 参数值 String password = request.getParameter("password"); // 获取 password 参数值 String passwordMD5 = ""; // 用于存储加密后的密码 if (password != null && !password.equals("")) { // 将密码进行 MD5 加密 MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] bytes = md5.digest(password.getBytes()); StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%02X", b)); } passwordMD5 = sb.toString(); } // 构造加密后的参数 String encryptedUsername = java.net.URLEncoder.encode(username, "UTF-8"); String encryptedPassword = java.net.URLEncoder.encode(passwordMD5, "UTF-8"); %> <form action="login.jsp" method="post"> <input type="text" name="username" value="<%=encryptedUsername%>"> <input type="password" name="password" value="<%=encryptedPassword%>"> <input type="submit" value="登录"> </form> ``` 其中,`request.getParameter("username")` 和 `request.getParameter("password")` 用于获取 POST 请求中的用户名和密码参数值,将密码进行 MD5 加密的代码与上面的例子相同,不再赘述。然后,构造加密后的参数值,使用 `java.net.URLEncoder.encode` 方法进行 URL 编码。 最后,将加密后的参数值设置到表单的输入框中,用户提交表单时,将会提交加密后的参数。在服务器端接收到请求后,需要对参数进行解密和校验,确保用户名和密码的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值