<%@ LANGUAGE="VBSCRIPT" %> <%Response.Buffer=TRUE%> <% Set adoCon = Server.CreateObject("ADODB.Connection") 'src = Server.MapPath("db/site.mdb") src = ("d:\hosting\cardinaldist\access_db\site.mdb") sConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & src adoCon.Open sConnStr 'Set an active connection to the Connection object using DSN 'adoCon.Open "DSN=ASPLOGIN" %> <% 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) m_lOnBits(0) = CLng(1) m_lOnBits(1) = CLng(3) m_lOnBits(2) = CLng(7) m_lOnBits(3) = CLng(15) m_lOnBits(4) = CLng(31) m_lOnBits(5) = CLng(63) m_lOnBits(6) = CLng(127) m_lOnBits(7) = CLng(255) m_lOnBits(8) = CLng(511) m_lOnBits(9) = CLng(1023) m_lOnBits(10) = CLng(2047) m_lOnBits(11) = CLng(4095) m_lOnBits(12) = CLng(8191) m_lOnBits(13) = CLng(16383) m_lOnBits(14) = CLng(32767) m_lOnBits(15) = CLng(65535) m_lOnBits(16) = CLng(131071) m_lOnBits(17) = CLng(262143) m_lOnBits(18) = CLng(524287) m_lOnBits(19) = CLng(1048575) m_lOnBits(20) = CLng(2097151) m_lOnBits(21) = CLng(4194303) m_lOnBits(22) = CLng(8388607) m_lOnBits(23) = CLng(16777215) m_lOnBits(24) = CLng(33554431) m_lOnBits(25) = CLng(67108863) m_lOnBits(26) = CLng(134217727) m_lOnBits(27) = CLng(268435455) m_lOnBits(28) = CLng(536870911) m_lOnBits(29) = CLng(1073741823) m_lOnBits(30) = CLng(2147483647) m_l2Power(0) = CLng(1) m_l2Power(1) = CLng(2) m_l2Power(2) = CLng(4) m_l2Power(3) = CLng(8) m_l2Power(4) = CLng(16) m_l2Power(5) = CLng(32) m_l2Power(6) = CLng(64) m_l2Power(7) = CLng(128) m_l2Power(8) = CLng(256) m_l2Power(9) = CLng(512) m_l2Power(10) = CLng(1024) m_l2Power(11) = CLng(2048) m_l2Power(12) = CLng(4096) m_l2Power(13) = CLng(8192) m_l2Power(14) = CLng(16384) m_l2Power(15) = CLng(32768) m_l2Power(16) = CLng(65536) m_l2Power(17) = CLng(131072) m_l2Power(18) = CLng(262144) m_l2Power(19) = CLng(524288) m_l2Power(20) = CLng(1048576) m_l2Power(21) = CLng(2097152) m_l2Power(22) = CLng(4194304) m_l2Power(23) = CLng(8388608) m_l2Power(24) = CLng(16777216) m_l2Power(25) = CLng(33554432) m_l2Power(26) = CLng(67108864) m_l2Power(27) = CLng(134217728) m_l2Power(28) = CLng(268435456) m_l2Power(29) = CLng(536870912) m_l2Power(30) = CLng(1073741824) 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 If (lValue And m_l2Power(31 - iShiftBits)) Then LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000 Else LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits)) End If End Function Private Function RShift(lValue, iShiftBits) If iShiftBits = 0 Then RShift = lValue Exit Function ElseIf iShiftBits = 31 Then If lValue And &H80000000 Then RShift = 1 Else RShift = 0 End If Exit Function ElseIf iShiftBits < 0 Or iShiftBits > 31 Then Err.Raise 6 End If RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits) If (lValue And &H80000000) Then RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1))) End If End Function Private Function RotateLeft(lValue, iShiftBits) RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits)) End Function Private Function AddUnsigned(lX, lY) Dim lX4 Dim lY4 Dim lX8 Dim lY8 Dim lResult lX8 = lX And &H80000000 lY8 = lY And &H80000000 lX4 = lX And &H40000000 lY4 = lY And &H40000000 lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF) If lX4 And lY4 Then lResult = lResult Xor &H80000000 Xor lX8 Xor lY8 ElseIf lX4 Or lY4 Then If lResult And &H40000000 Then lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8 Else lResult = lResult Xor &H40000000 Xor lX8 Xor lY8 End If Else lResult = lResult Xor lX8 Xor lY8 End If AddUnsigned = lResult End Function Private Function F(x, y, z) F = (x And y) Or ((Not x) And z) End Function Private Function G(x, y, z) G = (x And z) Or (y And (Not z)) End Function Private Function H(x, y, z) H = (x Xor y Xor z) End Function Private Function I(x, y, z) I = (y Xor (x Or (Not z))) End Function Private Sub FF(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub GG(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub HH(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub II(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Function ConvertToWordArray(sMessage) Dim lMessageLength Dim lNumberOfWords Dim lWordArray() Dim lBytePosition Dim lByteCount Dim lWordCount Const MODULUS_BITS = 512 Const CONGRUENT_BITS = 448 lMessageLength = Len(sMessage) lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ BITS_TO_A_BYTE)) \ (MODULUS_BITS \ BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS \ BITS_TO_A_WORD) ReDim lWordArray(lNumberOfWords - 1) lBytePosition = 0 lByteCount = 0 Do Until lByteCount >= lMessageLength lWordCount = lByteCount \ BYTES_TO_A_WORD lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition) lByteCount = lByteCount + 1 Loop lWordCount = lByteCount \ BYTES_TO_A_WORD lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition) lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3) lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29) ConvertToWordArray = lWordArray End Function Private Function WordToHex(lValue) Dim lByte Dim lCount For lCount = 0 To 3 lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1) WordToHex = WordToHex & Right("0" & Hex(lByte), 2) Next End Function Public Function MD5(sMessage) Dim x Dim k Dim AA Dim BB Dim CC Dim DD Dim a Dim b Dim c Dim d Const S11 = 7 Const S12 = 12 Const S13 = 17 Const S14 = 22 Const S21 = 5 Const S22 = 9 Const S23 = 14 Const S24 = 20 Const S31 = 4 Const S32 = 11 Const S33 = 16 Const S34 = 23 Const S41 = 6 Const S42 = 10 Const S43 = 15 Const S44 = 21 x = ConvertToWordArray(sMessage) a = &H67452301 b = &HEFCDAB89 c = &H98BADCFE d = &H10325476 For k = 0 To UBound(x) Step 16 AA = a BB = b CC = c DD = d FF a, b, c, d, x(k + 0), S11, &HD76AA478 FF d, a, b, c, x(k + 1), S12, &HE8C7B756 FF c, d, a, b, x(k + 2), S13, &H242070DB FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE FF a, b, c, d, x(k + 4), S11, &HF57C0FAF FF d, a, b, c, x(k + 5), S12, &H4787C62A FF c, d, a, b, x(k + 6), S13, &HA8304613 FF b, c, d, a, x(k + 7), S14, &HFD469501 FF a, b, c, d, x(k + 8), S11, &H698098D8 FF d, a, b, c, x(k + 9), S12, &H8B44F7AF FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1 FF b, c, d, a, x(k + 11), S14, &H895CD7BE FF a, b, c, d, x(k + 12), S11, &H6B901122 FF d, a, b, c, x(k + 13), S12, &HFD987193 FF c, d, a, b, x(k + 14), S13, &HA679438E FF b, c, d, a, x(k + 15), S14, &H49B40821 GG a, b, c, d, x(k + 1), S21, &HF61E2562 GG d, a, b, c, x(k + 6), S22, &HC040B340 GG c, d, a, b, x(k + 11), S23, &H265E5A51 GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA GG a, b, c, d, x(k + 5), S21, &HD62F105D GG d, a, b, c, x(k + 10), S22, &H2441453 GG c, d, a, b, x(k + 15), S23, &HD8A1E681 GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8 GG a, b, c, d, x(k + 9), S21, &H21E1CDE6 GG d, a, b, c, x(k + 14), S22, &HC33707D6 GG c, d, a, b, x(k + 3), S23, &HF4D50D87 GG b, c, d, a, x(k + 8), S24, &H455A14ED GG a, b, c, d, x(k + 13), S21, &HA9E3E905 GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8 GG c, d, a, b, x(k + 7), S23, &H676F02D9 GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A HH a, b, c, d, x(k + 5), S31, &HFFFA3942 HH d, a, b, c, x(k + 8), S32, &H8771F681 HH c, d, a, b, x(k + 11), S33, &H6D9D6122 HH b, c, d, a, x(k + 14), S34, &HFDE5380C HH a, b, c, d, x(k + 1), S31, &HA4BEEA44 HH d, a, b, c, x(k + 4), S32, &H4BDECFA9 HH c, d, a, b, x(k + 7), S33, &HF6BB4B60 HH b, c, d, a, x(k + 10), S34, &HBEBFBC70 HH a, b, c, d, x(k + 13), S31, &H289B7EC6 HH d, a, b, c, x(k + 0), S32, &HEAA127FA HH c, d, a, b, x(k + 3), S33, &HD4EF3085 HH b, c, d, a, x(k + 6), S34, &H4881D05 HH a, b, c, d, x(k + 9), S31, &HD9D4D039 HH d, a, b, c, x(k + 12), S32, &HE6DB99E5 HH c, d, a, b, x(k + 15), S33, &H1FA27CF8 HH b, c, d, a, x(k + 2), S34, &HC4AC5665 II a, b, c, d, x(k + 0), S41, &HF4292244 II d, a, b, c, x(k + 7), S42, &H432AFF97 II c, d, a, b, x(k + 14), S43, &HAB9423A7 II b, c, d, a, x(k + 5), S44, &HFC93A039 II a, b, c, d, x(k + 12), S41, &H655B59C3 II d, a, b, c, x(k + 3), S42, &H8F0CCC92 II c, d, a, b, x(k + 10), S43, &HFFEFF47D II b, c, d, a, x(k + 1), S44, &H85845DD1 II a, b, c, d, x(k + 8), S41, &H6FA87E4F II d, a, b, c, x(k + 15), S42, &HFE2CE6E0 II c, d, a, b, x(k + 6), S43, &HA3014314 II b, c, d, a, x(k + 13), S44, &H4E0811A1 II a, b, c, d, x(k + 4), S41, &HF7537E82 II d, a, b, c, x(k + 11), S42, &HBD3AF235 II c, d, a, b, x(k + 2), S43, &H2AD7D2BB II b, c, d, a, x(k + 9), S44, &HEB86D391 a = AddUnsigned(a, AA) b = AddUnsigned(b, BB) c = AddUnsigned(c, CC) d = AddUnsigned(d, DD) Next MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d)) End Function %> <% 'Create an ADO recordset object Set rsSiteName = Server.CreateObject("ADODB.Recordset") 'Initialise the strSQL variable with an SQL statement to query the database strSQL = "SELECT [sitename] FROM tblAdmin" 'Open the recordset with the SQL query rsSiteName.Open strSQL, adoCon Response.Write ("") Response.Write (rsSiteName("sitename")) Response.Write (" - Get Lost Password") Set rsSiteName = Nothing %>

 
  <%= FormatDateTime(Date, 1) %>  <%= FormatDateTime(NOW, 3) %>
  
Login
Cardinal Dist. Home Page


<% Function RandomPW(myLength) 'These constant are the minimum and maximum length for random 'length passwords. Adjust these values to your needs. Const minLength = 6 Const maxLength = 20 Dim X, Y, strPW If myLength = 0 Then Randomize myLength = Int((maxLength * Rnd) + minLength) End If For X = 1 To myLength 'Randomize the type of this character Y = Int((3 * Rnd) + 1) '(1) Numeric, (2) Uppercase, (3) Lowercase Select Case Y Case 1 'Numeric character Randomize strPW = strPW & CHR(Int((9 * Rnd) + 48)) Case 2 'Uppercase character Randomize strPW = strPW & CHR(Int((25 * Rnd) + 65)) Case 3 'Lowercase character Randomize strPW = strPW & CHR(Int((25 * Rnd) + 97)) End Select Next RandomPW = strPW End Function %> <% Dim mode 'Dimension Variables Dim strUserName 'Holds the name of the user Dim userID Dim strSQL 'Holds the SQL query to query the database DIM strSQLCheck If Request.querystring("mode") = "enter" then Response.Write ("
Get Lost Password
") Response.Write ("
") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("
User name: ") Response.Write ("") Response.Write ("
 ") Response.Write ("") Response.Write ("          ") Response.Write ("") Response.Write ("
") Response.Write ("
") End If If Request.querystring("mode") = "get" then strUserName = Replace(Request.Form("txtUserName"), "'", "''") 'Create an ADO recordset object Set rsGetPassword = Server.CreateObject("ADODB.Recordset") 'Initialise the strSQL variable with an SQL statement to query the database strSQL = "SELECT [username], [password], [email] from tblUsers where username = '" & strUserName & "'" 'Create an ADO recordset object Set rsGetEmail = Server.CreateObject("ADODB.Recordset") 'Initialise the strSQL variable with an SQL statement to query the database strSQLAdminEmail = "SELECT [siteemail], [emailserver] from tblAdmin" 'Open the recordset with the SQL query rsGetPassword.Open strSQL, adoCon 'Open the recordset with the SQL query rsGetEmail.Open strSQLAdminEmail, adoCon 'Reset server objects If rsGetPassword.EOF then Response.Redirect"password.asp?mode=nouser" End If Dim strEmail strEmail = rsGetPassword("email") strPassword = RandomPW(0) htmlBody = "You are receiving this email because you have (or someone pretending to be you has) requested a new password be sent for your account. If you did not request this email then please ignore it, if you keep receiving it please contact the administrator.

" htmlBody = htmlBody & "Your Password is: " & strPassword htmlBody = htmlBody & "

You can of course change this password yourself via the profile page. If you have any difficulties please contact the administrator.

Thanks" 'Dimension variables ''Dim objCDOSYSCon 'Create the e-mail server object ''Set objCDOSYSMail = Server.CreateObject("CDO.Message") ''Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration") 'Set and update fields properties 'Out going SMTP server ''objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = rsGetEmail("emailserver") 'SMTP port ''objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 'CDO Port ''objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'Timeout ''objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 ''objCDOSYSCon.Fields.Update 'Update the CDOSYS Configuration ''Set objCDOSYSMail.Configuration = objCDOSYSCon 'Who the e-mail is from ''objCDOSYSMail.From = rsGetEmail("siteemail") 'Who the e-mail is sent to ''objCDOSYSMail.To = rsGetPassword("email") 'The subject of the e-mail ''objCDOSYSMail.Subject = "Lost Password" 'Set the e-mail body format (HTMLBody=HTML TextBody=Plain) ''objCDOSYSMail.HTMLBody = htmlBody 'Send the e-mail ''objCDOSYSMail.Send 'Close the server mail object ''Set objCDOSYSMail = Nothing ''Set objCDOSYSCon = Nothing 'Dimension variables [new CDONTS code for GoDaddy] 'Create the e-mail server object Set MyMail = Server.CreateObject("CDONTS.NewMail") 'Update the CDONTS Configuration myMail.BodyFormat = 0 myMail.MailFormat = 0 'Who the e-mail is from MyMail.From = rsGetEmail("siteemail") 'Who the e-mail is sent to MyMail.To = rsGetPassword("email") 'The subject of the e-mail MyMail.Subject = "Lost Passwsord" 'Set the e-mail body format (HTMLBody=HTML TextBody=Plain) MyMail.Body = htmlBody 'Send the e-mail MyMail.Send 'Close the server mail object Set MyMail = Nothing Set rsGetEmail = Nothing Set adoCon = Nothing strEPassword = md5(strPassword) Set rsUpdatePassword = Server.CreateObject("ADODB.Recordset") strUpdateSQL = "UPDATE tblUsers SET tblUsers.password='" & strEPassword & "' WHERE username ='" & strUserName & "'" rsUpdatePassword.Open strUpdateSQL, adoCon Set rsGetPassword = Nothing Set rsGetEmail = Nothing Set rsUpdatePassword = Nothing Set adoCon = Nothing Response.Redirect"password.asp?mode=email" End If If Request.querystring("mode") = "nouser" then Response.Write ("
User doesn't exist
") Response.Write ("
") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("
User name: ") Response.Write ("") Response.Write ("
 ") Response.Write ("") Response.Write ("          ") Response.Write ("") Response.Write ("
") Response.Write ("
") End If If Request.querystring("mode") = "email" then Response.Write ("
Your password was sent to the email in your profile.
") Response.Write ("
") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("") Response.Write ("
User name: ") Response.Write ("") Response.Write ("
Password: ") Response.Write ("") Response.Write ("
 ") Response.Write ("") Response.Write ("          ") Response.Write ("") Response.Write ("
") Response.Write ("
") End If %>
Customized by Cardinal District
Copyright © 2004 Todd Woolums