如何做一个用MD5进行登录验证的login.asp

Kevinleon 2005-01-21 10:30:00
菜鸟提问:
我有一个SQL数据库程序,现在想把它的user库和动网论坛进行整合,可是在整合过程当中,我发现动网的验证方式是MD5,晕,我的使用的是明码方式,请教高手,怎么办啊?另外,受牵连的还有session判断问题。请高手指点迷津,本人纯属菜鸟级别的aspFans,半桶水,似懂非懂,如果有明确的解决办法最好(另送100分)。
...全文
504 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kevinleon 2005-01-23
  • 打赏
  • 举报
回复
2005-01-23 02:46:19 192.167.0.1 - 192.167.0.1 80 POST /login.asp |353|800a000d|类型不匹配:_'stype' 500
Kevinleon 2005-01-23
  • 打赏
  • 举报
回复
md.asp也好像没有发现什么问题,曾经在代码最后有过一点问题,但是这个是没有改动过的原文件阿。

<%
Private Const BITS_TO_A_BYTE = 8
Private Const BYTES_TO_A_WORD = 4
Private Const BITS_TO_A_WORD = 32

Private m_lOnBits(30)
Private m_l2Power(30)

Private Function LShift(lValue, iShiftBits)
If iShiftBits = 0 Then
LShift = lValue
Exit Function
ElseIf iShiftBits = 31 Then
If lValue And 1 Then
LShift = &H80000000
Else
LShift = 0
End If
Exit Function
ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
Err.Raise 6
End If
......
......
......
a = AddUnsigned(a, AA)
b = AddUnsigned(b, BB)
c = AddUnsigned(c, CC)
d = AddUnsigned(d, DD)
Next

if stype=32 then '曾经出现问题处stype=32
MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))
else
MD5=LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D
end if
End Function
%>
Kevinleon 2005-01-23
  • 打赏
  • 举报
回复
1、错误内容是在iis纪录中找到的,ie没有显示(iis已经设置客户端调试):

2005-01-23 02:36:03 192.167.0.1 - 192.167.0.1 80 GET /login.asp - 200 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0;+Maxthon)
2005-01-23 02:36:06 211.81.244.181 - 211.81.244.181 80 POST /login.asp |18|800a01c2|错误的参数个数或无效的参数属性值:_'MD5' 500

2、源文件如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Connections/userconn.asp" -->
<!--#include file="md5.asp" -->
<%

MM_LoginAction = Request.ServerVariables("URL")
If Request.QueryString<>"" Then MM_LoginAction = MM_LoginAction + "?" + Server.HTMLEncode(Request.QueryString)
MM_valUsername=CStr(Request.Form("username"))
If MM_valUsername <> "" Then
MM_fldUserAuthorization=""
MM_redirectLoginSuccess="help.htm"
MM_redirectLoginFailed="msn.htm"
MM_flag="ADODB.Recordset"
set MM_rsUser = Server.CreateObject(MM_flag)
MM_rsUser.ActiveConnection = MM_userconn_STRING
MM_rsUser.Source = "SELECT username, password"
If MM_fldUserAuthorization <> "" Then MM_rsUser.Source = MM_rsUser.Source & "," & MM_fldUserAuthorization
MM_rsUser.Source = MM_rsUser.Source & " FROM dbo.Dv_admin WHERE username='" & Replace(MM_valUsername,"'","''") &"' AND password='" & MD5(request("password"),"") & "'"
MM_rsUser.CursorType = 0
MM_rsUser.CursorLocation = 2
MM_rsUser.LockType = 3
MM_rsUser.Open
If Not MM_rsUser.EOF Or Not MM_rsUser.BOF Then

Session("MM_Username") = MM_valUsername
If (MM_fldUserAuthorization <> "") Then
Session("MM_UserAuthorization") = CStr(MM_rsUser.Fields.Item(MM_fldUserAuthorization).Value)
Else
Session("MM_UserAuthorization") = ""
End If
if CStr(Request.QueryString("accessdenied")) <> "" And false Then
MM_redirectLoginSuccess = Request.QueryString("accessdenied")
End If
MM_rsUser.Close
Response.Redirect(MM_redirectLoginSuccess)
End If
MM_rsUser.Close
Response.Redirect(MM_redirectLoginFailed)
End If
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<form action="<%=MM_LoginAction%>" method="POST" name="checkuser" id="checkuser">
<p>
<input name="username" type="text" id="username">
</p>
<p>
<input name="password" type="password" id="password">
<input type="submit" name="Submit" value="提交">
</p>
</form>
</body>
</html>
myvicy 2005-01-23
  • 打赏
  • 举报
回复
还是有错误吗?代码和错误帖出来看看。
istcn 2005-01-23
  • 打赏
  • 举报
回复
up
Kevinleon 2005-01-23
  • 打赏
  • 举报
回复
究竟由谁能够告诉我原因所在啊?啊啊啊,求求你们拉小弟一把阿,我是学文科的,不容易啊!~~~
哪位大哥现在有一个简单的现成的login代码,提供给小弟参考,小弟将感激涕零阿~~~~~
Kevinleon 2005-01-22
  • 打赏
  • 举报
回复
|353|800a000d|类型不匹配:_'stype' 500

查看了一下,怎么是md5.asp中的这一句有问题呢?在代码的最后面几句。

Next

if stype=32 then '就是这一行出现问题.
MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))
else
MD5=LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D
end if
End Function
%>
Kevinleon 2005-01-22
  • 打赏
  • 举报
回复
up
Kevinleon 2005-01-22
  • 打赏
  • 举报
回复
我的确是这样做的啊,md5.asp是动网自带的那个,没有改动。但是就是不行。

提示“错误的参数个数或无效的参数属性值: 'MD5'”

有没有做好的一个样子给我参考一下啊?这个东西整的我有点晕了!!!
SunnyMusic 2005-01-22
  • 打赏
  • 举报
回复
up
Kevinleon 2005-01-21
  • 打赏
  • 举报
回复
呵呵,其实我在偷懒。(脸红ing...)
Newrocky 2005-01-21
  • 打赏
  • 举报
回复
<!--include file="md5.asp"-->
<%dim pwd

pwd = md5(request("pwd"))
'验证PWD

%>

另外,由于你现在的数据库的值是明码的,所以必须用程序来替换原来的数据才可以
香椿炒鸡蛋 2005-01-21
  • 打赏
  • 举报
回复
楼主还要怎么样细丫 ? 如何这个看不明白 那你改动网论坛会不会有困难哦

加密过程你能明白吗?
Kevinleon 2005-01-21
  • 打赏
  • 举报
回复
能不能再细点啊?
香椿炒鸡蛋 2005-01-21
  • 打赏
  • 举报
回复
呵呵 简单 md5.asp这个文件你应该有的吧 把他包含到页面中 用include(晕,是不是讲的太细了?)

dim pwd

pwd = md5(request("pwd"))

这样pwd 就是加密过后的串了 你可以response.write pwd 出来看看 包含了md5.asp这个文件以后md5()这个函数才能用哦

Kevinleon 2005-01-21
  • 打赏
  • 举报
回复
给自己顶一下。水真大!
agaric 2005-01-21
  • 打赏
  • 举报
回复
注册的时候就用md5把密码转化以后存入数据库

每次登陆的时候把输入的密码转化以后和数据库里的密码进行比较 就是这样啦

至于session可能不需要改变 因为我都是用seesion("isLogin")来判断 除了"ture"以外的其他值都是假
VisualFred 2005-01-21
  • 打赏
  • 举报
回复
up
pc01 2005-01-21
  • 打赏
  • 举报
回复
首先你得确保你得到了正确的MD5代码。
接着确保在页面开始部分通过:<!--#include file="MD5.asp"-->引用了MD5加密代码。
还有我以前用的MD5它有两个参数,后面的那个参数一般情况下可以不用,这样在使用时可传一个空值进去才可以。如下:

MD5(request("password"),"")

Kevinleon 2005-01-21
  • 打赏
  • 举报
回复
Microsoft VBScript 运行时错误 错误 '800a01c2'

错误的参数个数或无效的参数属性值: 'MD5'

/user/user-test.asp,行25
加载更多回复(6)
运行环境:IIS Access后台地址:http://您的域名/Admin/Admin_Login.asp默认管理帐号:admin 密码:123456789 文件结构根目录Pay_Save.asp        生成订单并提交loginout.asp        退出登陆Index.asp        首页文件夹:AdminAdmin_Login.asp        管理登陆页面Admin_Config.asp    后台首页Admin_Index.asp        后台首页Admin_Left.asp        后台左边功能列表Admin_Info.asp        网站基本信息设置loginout.asp        管理退出Admin_Info_Save.asp    网站基本信息保存Admin_Pw.asp        管理密码修改Admin_Pw_Save.asp    管理密码修改保存Admin_User_List.asp    用户列表Admin_User_Edit_save.asp用户修改保存Admin_User_Edit.asp    用户修改Admin_User_Add.asp    增加用户Admin_Card_Edit.asp    充值卡功能提交页Admin_Card_Make.asp    充值卡生成页面Admin_Card_list.asp    充值卡列表页Admin_Online_List.asp    在线列表管理页面Admin_Order_Info.asp    订单显示Admin_Order_Edit.asp    订单管理Admin_Ip_Info.asp    封IP显示Admin_Ip_Edit.asp    封IP管理文件夹:IncConn.asp        数据库连接Md5.asp            MD5加密Function.asp        功能页Top.asp            网站头文件Bottom.asp        网站底部文件Post.asp        注册什么的功能页Config.asp        网站配置信息Time.asp        时间页面文件夹:GetYzGet.asp        GET方式提交验证CzGet.asp        GET方式充值页面RegGet.asp        GET方式提交注册GbGet.asp        GET方式提交改绑PwGet.asp        GET方式修改密码Get.asp            GET方式定时验证(软件定时访问此页面)文件夹:PostYzPost.asp        POST方式提交验证CzPost.asp        POST方式充值页面RegPost.asp        POST方式提交注册GbPost.asp        POST方式提交改绑PwPost.asp        POST方式修改密码Post.asp        POST方式定时验证(软件定时访问此页面)文件夹:pay    在线直冲,支付宝接口文件
注:本资源不含易语言源码,需要自行根据系统的接口编写! 运行环境:IIS+Access 后台地址:http://您的域名/Admin/Admin_Login.asp 默认管理帐号:admin 密码:123456789 文件结构 根目录 Pay_Save.asp生成订单并提交 loginout.asp退出登陆 Index.asp首页 文件夹:Admin Admin_Login.asp管理登陆页面 Admin_Config.asp后台首页 Admin_Index.asp后台首页 Admin_Left.asp后台左边功能列表 Admin_Info.asp网站基本信息设置 loginout.asp管理退出 Admin_Info_Save.asp网站基本信息保存 Admin_Pw.asp管理密码修改 Admin_Pw_Save.asp管理密码修改保存 Admin_User_List.asp用户列表 Admin_User_Edit_save.asp用户修改保存 Admin_User_Edit.asp用户修改 Admin_User_Add.asp增加用户 Admin_Card_Edit.asp充值卡功能提交页 Admin_Card_Make.asp充值卡生成页面 Admin_Card_list.asp充值卡列表页 Admin_Online_List.asp在线列表管理页面 Admin_Order_Info.asp订单显示 Admin_Order_Edit.asp订单管理 Admin_Ip_Info.asp封IP显示 Admin_Ip_Edit.asp封IP管理 文件夹:Inc Conn.asp数据库连接 Md5.aspMD5加密 Function.asp功能页 Top.asp网站头文件 Bottom.asp网站底部文件 Post.asp注册什么的功能页 Config.asp网站配置信息 Time.asp时间页面 文件夹:Get YzGet.aspGET方式提交验证 CzGet.aspGET方式充值页面 RegGet.aspGET方式提交注册 GbGet.aspGET方式提交改绑 PwGet.aspGET方式修改密码 Get.aspGET方式定时验证(软件定时访问此页面) 文件夹:Post YzPost.aspPOST方式提交验证 CzPost.aspPOST方式充值页面 RegPost.aspPOST方式提交注册 GbPost.aspPOST方式提交改绑 PwPost.aspPOST方式修改密码 Post.aspPOST方式定时验证(软件定时访问此页面) 文件夹:pay在线直冲,支付宝接口文件

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧