|
very simply, go into the database and find the administration ID (Its contained in the table "tblAuthor"). Find and copy the field named 'salt'. Copy it into the bottom of the script where it sayes "yoursalthere". Then replace the line that sayes "yourpasswordhere" with the password you want. Execute the script and it will print out a combo of numbers and letters. Copy that BACK into the "password" field of your database. Bam! your password's changed. (Mind you that this code will no longer work in newer versions, Bruce will soon change the forum so nobody can change the password like this...) This only encodes not decodes your password.
<% Function getSalt(intLen) ' Function takes a given length x and generates a random hex value of x digits. ' Salt can be used to help protect passwords. When a password is first stored in a ' database generate a salt value also. Concatenate the salt value with the password, ' and then encrypt it using the HashEncode function below. Store both the salt value, ' and the encrypted value in the database. When a password needs to be verified, take ' the password concatenate the salt from the database. Encode it using the HashEncode ' function below. If the result matches the the encrypted password stored in the ' database, then it is a match. If not then the password is invalid. ' ' ' Note: Passwords become case sensitive when using this encryption. ' For more information on Password HASH Encoding, and SALT visit: http://local.15seconds.com/issue/000217.htm - http://local.15seconds.com/issue/000217.htm ' ' Call this function if you wish to generate a random hex value of any given length ' ' Written By: Mark G. Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact
Dim strSalt Dim intIndex, intRand
If Not IsNumeric(intLen) Then getSalt = "00000000" exit function ElseIf CInt(intLen) <> CDbl(intLen) Or CInt(intLen) < 1 Then getSalt = "00000000" exit function End If
Randomize
For intIndex = 1 to CInt(intLen) intRand = CInt(Rnd * 1000) Mod 16 strSalt = strSalt & getDecHex(intRand) Next getSalt = strSalt
End Function
Function HashEncode(strSecret) ' Function takes an ASCII string less than 2^61 characters long and ' one way hash encrypts it using 160 bit encryption into a 40 digit hex value. ' The encoded hex value cannot be decoded to the original string value. ' ' This is the only function that you need to call for encryption. ' ' Written By: Mark G. Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact ' ' The author makes no warranties as to the validity, and/or authenticity of this code. ' You may use any code found herein at your own risk. ' This code was written to follow as closely as possible the standards found in ' Federal Information Processing Standards Publication (FIPS PUB 180-1) ' http://csrc.nist.gov/fips/fip180-1.txt - http://csrc.nist.gov/fips/fip180-1.txt -- Secure Hash Standard SHA-1 ' ' This code is for private use only, and the security and/or encryption of the resulting ' hexadecimal value is not warrented or gaurenteed in any way. ' Dim strEncode, strH(4) Dim intPos If len(strSecret) = 0 or len(strSecret) >= 2^61 then HashEncode = "0000000000000000000000000000000000000000" exit function end if 'Initial Hex words are used for encoding Digest. 'These can be any valid 8-digit hex value (0 to F) strH(0) = "FB0C14C2" strH(1) = "9F00AB2E" strH(2) = "991FFA67" strH(3) = "76FA2C3F" strH(4) = "ADE426FA" For intPos = 1 to len(strSecret) step 56 strEncode = Mid(strSecret, intPos, 56) 'get 56 character chunks strEncode = WordToBinary(strEncode) 'convert to binary strEncode = PadBinary(strEncode) 'make it 512 bites strEncode = BlockToHex(strEncode) 'convert to hex value 'Encode the hex value using the previous runs digest 'If it is the first run then use the initial values above strEncode = DigestHex(strEncode, strH(0), strH(1), strH(2), strH(3), strH(4))
'Combine the old digest with the new digest strH(0) = HexAdd(left(strEncode, 8), strH(0)) strH(1) = HexAdd(mid(strEncode, 9, 8), strH(1)) strH(2) = HexAdd(mid(strEncode, 17, 8), strH(2)) strH(3) = HexAdd(mid(strEncode, 25, 8), strH(3)) strH(4) = HexAdd(right(strEncode, 8), strH(4)) Next 'This is the final Hex Digest HashEncode = strH(0) & strH(1) & strH(2) & strH(3) & strH(4) End Function
Function HexToBinary(btHex)
' Function Converts a single hex value into it's binary equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact '
Select Case btHex Case "0" HexToBinary = "0000" Case "1" HexToBinary = "0001" Case "2" HexToBinary = "0010" Case "3" HexToBinary = "0011" Case "4" HexToBinary = "0100" Case "5" HexToBinary = "0101" Case "6" HexToBinary = "0110" Case "7" HexToBinary = "0111" Case "8" HexToBinary = "1000" Case "9" HexToBinary = "1001" Case "A" HexToBinary = "1010" Case "B" HexToBinary = "1011" Case "C" HexToBinary = "1100" Case "D" HexToBinary = "1101" Case "E" HexToBinary = "1110" Case "F" HexToBinary = "1111" Case Else HexToBinary = "2222" End Select End Function
Function BinaryToHex(strBinary)
' Function Converts a 4 bit binary value into it's hex equivalent ' ' Written By: Mark Jager ' Written Date: 8/10/2000 ' ' Free to distribute as long as code is not modified, and header is kept intact '
------------- Paul A Morgan
http://www.pmorganphoto.com/" rel="nofollow - http://www.pmorganphoto.com/
|