怎么去掉ASP网站后台登陆密码的MD5加密方式?100分

时间:2021-09-10 17:21:44
1。网站是ASP的

2。后台管理员登陆密码是MD5加密的

3。后台没有修改密码功能

4。只能在数据库里面对PASSWORD字段重新填入MD5密文来修改密码

5。修改成数据库里面备份有的几个密码都可以成功登陆

6。修改成我用网上找的"MD5加密工具"新加密的密码就不能登陆

7。并且我发现明文密码相同时,备份的MD5密文和网上找的"MD5加密工具"加密出来的密文数值不一样

8。比如:明文密码为:test  
  备份的MD5密文是:db2d303c20b9468bbe90114d3d1874b3(修改为此可以用test登陆)
  网上加密工具出来则是:098f6bcd4621d373cade4e832627b4f6(修改为此用test登陆则不成功)
   问:用加密工具出来的密文居然和备份的不一样,这是为什么?我怎样才能得到想要的能够登陆的新密码?不可能永远用备份的那几个密码吧!!!

9。用网上找的什么admin admin888等等之类的MD5密文去替换还是不能登陆

10。那么:如果没法解决这个问题
   问:如果不能解决上面问题,那么有没有办法去掉这个MD5加密功能,让我在password字段直接填入密码,然后就用这个登陆?

11。完全解决这个问题者加高分

12。下面列出我的后台登陆页面login.asp的代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="db/conn.asp"-->
<!--#include file="Inc/Md5.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>登录</title>
</head>

<body>
<%
If Session("login_code")=Request.Form("login_code") and Len(Request.Form("login_code"))>1 Then
Dim i
Randomize Timer
Session("login_code")=""
For i=1 To 4
Session("login_code")=Session("login_code")+Cstr(Int(Rnd * 10))
Next
Call ConnectionDataBase '连接数据库
Dim Tsql,Rs
Dim pas,LastIP,LastTime
LastIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")   
If LastIP = "" Then
LastIP = Request.ServerVariables("REMOTE_ADDR")   
End If
LastTime=Now()
Tsql="Select a.id,a.UserName,a.Password,a.mStatus,b.lName as UserGroup,a.LastIp,a.LastTime,b.Bak as GroupName From admin a Left Outer Join UserGroup b On a.UserGroup=b.ID Where a.UserName Like '"&Request.Form("ad_name")&"'"
Set Rs=Server.CreateObject("Adodb.RecordSet")
Rs.Open Tsql,Conn,1,3
If Rs.Eof Or Rs("PassWord")<>Do_Encrypt(Request.Form("ad_pas")) Then
%>
<script>alert("对不起,用户名或密码错误,请重新输入!");</script>   
<meta http-equiv=refresh content='0;URL=index.asp'>   
<title>用户名或密码错误,正在返回中...</title>  
<%
Else
If Rs("mStatus")="0" Then
%>
<script>alert("对不起,此用户已被管理员屏蔽!");</script>   
<meta http-equiv=refresh content='0;URL=index.asp'>   
<title>此用户已被管理员屏蔽,正在返回中...</title>   
<%

Else
if Request.Form("Sess")="yes" then
Session.Timeout=120
Session("Login_Name")= Rs("UserName")
Response.Cookies("Login_Name")=Rs("UserName")
Session("Login_Admin")="|"&Rs("UserGroup")&"|"
Session("Login_Id")=Rs("id")
Session("Login_Level")=Rs("GroupName")
Session("WebSite")="3721"
else
Session.Timeout=720
Response.Cookies("Login_Name")=Rs("UserName")
Session("Login_Name")=Rs("UserName")
Session("Login_Admin")="|"&Rs("UserGroup")&"|"
Session("Login_Id")=Rs("id")
Session("Login_Level")=Rs("GroupName")
Session("WebSite")="3721"
end if
Rs("LastIp")=LastIP
Rs("LastTime")=LastTime
Rs.Update
pas=Replace(Replace(Replace(Replace(Replace(Replace(Request.Form("ad_pas"),"admin",""),"88582",""),"3721",""),"cnqk",""),"super",""),"123456","")
if Len(pas)<6 Or IsNumeric(Trim(Request.Form("ad_pas"))&"0") then
%>
<script>alert("系统提示:您的密码为不安全密码,推荐修改为更安全的密码!");</script>   
<meta http-equiv=refresh content='0;URL=main.asp'>   
<title>登陆成功,正在加载管理平台...</title>   
<%

Else
Response.Redirect("main.asp")
end if
End If
End If
Rs.Close
Call CloseDataBase '关闭数据库连接
Else
Randomize Timer
Session("login_code")=""
For i=1 To 4
Session("login_code")=Session("login_code")+Cstr(Int(Rnd * 10))
Next
%>
<script>alert("对不起,附加码错误,请重新输入!");</script>
<meta http-equiv=refresh content='0;URL=index.asp'>
<title>附加码错误,正在返回中...</title>
<%   
End If  
%>
</body>
</html>

6 个解决方案

#1


查看下Do_Encrypt函数的写法,你就知道该怎么办了。

#2


Do_Encrypt()这个代码贴出来。

#3


写个文件来加密不行吗?


Do_Encrypt.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Inc/Md5.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>MD5</title>
</head>

<body>
<%
Dim md5destr
md5destr = request.Form("md5destr")
If md5destr <> "" then response.write Do_Encrypt(md5destr) 'Do_Encrypt:Inc/Md5.asp里的加密函数?
%>
<form action="" method="post">
<input type="text" name="md5destr" value="请输入MD5加密的字符" />
<input type="submit" value=" md5 " />
</form>

</body>
</html>

#4


引用 2 楼 lzp4881 的回复:
Do_Encrypt()这个代码贴出来。


这个一般在哪儿找的到呢。

#5


DW搜索整个站点里的文件,就能找到该函数

#6


你这个应该只多个加密方法而成的,不会是单一的MD5

#1


查看下Do_Encrypt函数的写法,你就知道该怎么办了。

#2


Do_Encrypt()这个代码贴出来。

#3


写个文件来加密不行吗?


Do_Encrypt.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Inc/Md5.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>MD5</title>
</head>

<body>
<%
Dim md5destr
md5destr = request.Form("md5destr")
If md5destr <> "" then response.write Do_Encrypt(md5destr) 'Do_Encrypt:Inc/Md5.asp里的加密函数?
%>
<form action="" method="post">
<input type="text" name="md5destr" value="请输入MD5加密的字符" />
<input type="submit" value=" md5 " />
</form>

</body>
</html>

#4


引用 2 楼 lzp4881 的回复:
Do_Encrypt()这个代码贴出来。


这个一般在哪儿找的到呢。

#5


DW搜索整个站点里的文件,就能找到该函数

#6


你这个应该只多个加密方法而成的,不会是单一的MD5