在 ASP 中加密密码






4.40/5 (4投票s)
2002 年 1 月 20 日
1分钟阅读

236941
一个简单的函数,用于加密您的用户密码。
引言
你的网站是否需要用户登录,并且在登录时将用户输入的密码与用户表中的一列进行比较?有些人就是这样做的。这种方式易于编程且运行良好。但是,如果有人获取了用户表以及所有密码怎么办?你可能需要隐藏或加密用户表中的密码。许多编程语言都有函数可以做到这一点。我编写 ASP 网页,但尚未找到快速执行此操作的函数。有很多组件可以做到这一点,其中一些甚至是免费的。但是,如果你无法在 Web 服务器上安装组件怎么办?
这里有一种简单而整洁的方法来加密用户的密码。它需要两个字符串才能工作。通常是用户名和密码。
代码
Function encrypt(x1, x2)
s = ""
t = 0
For i = 1 to len(x1)
t = t + asc(mid(x1,i,1))
Next
For i = 1 to len(x2)
y = (t + asc(mid(x2,i,1)) * asc(mid(x2,((i+1) mod len(x2)+1),1))) mod 255
s = s & chr(y)
Next
For i = (len(x2) + 1) to 10
If t>598.8 Then t = 598.8
y = t^3*i mod 255
s = s & chr(y)
Next
encrypt = s
End Function
如果你想测试此函数,可以创建一个 ASP 页面并将其上传到你的网站。这是我的 encrypt.asp 代码列表:
<%
Function encrypt(x1, x2)
s = ""
t = 0
For i = 1 to len(x1)
t = t + asc(mid(x1,i,1))
Next
For i = 1 to len(x2)
y = (t + asc(mid(x2,i,1)) * asc(mid(x2,((i+1) mod len(x2)+1),1))) mod 255
s = s & chr(y)
Next
For i = (len(x2) + 1) to 10
If t>598.8 Then t = 598.8
y = t^3*i mod 255
s = s & chr(y)
Next
encrypt = s
End Function
%>
<html>
<head>
<title>Encrypt</title>
</head>
<body>
<% If request.form("name") = "" Then %>
<form action="encrypt.asp" method="post">
<input type="text" name="name"><input type="text" name="pass">
<input type="submit">
</form>
<% Else %>
<% response.write encrypt(request.form("name"),request.form("pass")) %>
<% End If %>
</body>
</html>
备注
- 该函数不可逆,因此无法将结果反转回密码。你需要使用新密码重新创建密码(有些用户似乎忘记了他们的密码,并且总是希望恢复它)。
- 这并不是高级加密,但足以隐藏它,防止那些笨拙的黑客(呵呵)。
- 密码始终从用户输入页面发送到加密页面的页面。黑客可以在中间某个地方截取它。安全区域(SSL)可以解决这个问题。
- 随意使用这段代码来做任何你喜欢的事情。但是,如果你修改了它,请在与本文相关的讨论中发帖,以便我们所有人分享乐趣。