> Hi, Nick.
>
[quoted text clipped - 31 lines]
> >
> > Nick
Give it a rest guys. This code has been in the public domain for years.
Public Function Access2000Password(ByVal Filename As String, Optional
bTrimNulls As Boolean = True) As String
' AUTHOR: JTRockville@programmer.net
' TERMS OF USE: Freeware
' This function will return the password of an Access
' 2000 database, and optionally, trim the nulls.
' The parameter Filename should contain the full name and
' location of the database for which you want the password.
Dim iFileNumber As Integer
Dim iFilePosition As Integer
Dim iKeyPosition As Integer
Dim iDecryptKey(13) As Integer
Dim strInputChar As String
Dim strPassword As String
' These 14 values are used to decrypt the value stored
' in the .mdb, in order to produce the password.
' Even though the values are entered in hexadecimal
' format, what is stored in the iDecryptKey variable is
' the ascii value.
iDecryptKey(0) = (&HEF)
iDecryptKey(1) = (&HEC)
iDecryptKey(2) = (&H34)
iDecryptKey(3) = (&H9C)
iDecryptKey(4) = (&HAF)
iDecryptKey(5) = (&H28)
iDecryptKey(6) = (&H7A)
iDecryptKey(7) = (&H8A)
iDecryptKey(8) = (&H3D)
iDecryptKey(9) = (&H7B)
iDecryptKey(10) = (&H9C)
iDecryptKey(11) = (&HDF)
iDecryptKey(12) = (&H1E)
iDecryptKey(13) = (&H13)
iKeyPosition = 0
iFileNumber = FreeFile
Open Filename For Binary Access Read As #iFileNumber ' Open file for input.
' Read every other character stored in positions 67-93
' of the input file.
For iFilePosition = 67 To 93 Step 2 'Read in Encrypted Password
Seek #iFileNumber, iFilePosition ' Set position.
strInputChar = Input(1, #iFileNumber) ' Read character.
' Take each of those 14 characters,
' do an xor bitwise comparison to it's corresponding
' "iDecryptKey" key, and store the resulting character.
' The xor operator accepts and returns ascii values,
' but does the comparison using binary values. So,
' for example:
' The first value to translate is asc(242).
' The first decryption code, iDecryptKey(0), is 134.
' In binary,
' The value to translate: 11110010
' The decryption code is: 10000110
' Xor compares each digit: If they're the same,
' the result is 0, if they're different, the result is 1.
' So the result, in our example, is binary 1110100.
' Xor returns the ascii value, 116, or lower case "t".
strPassword = strPassword & Chr(Asc(strInputChar) Xor iDecryptKey
(iKeyPosition)) 'Decrypt using Xor
iKeyPosition = iKeyPosition + 1 'increment pointer
Next iFilePosition
Close #iFileNumber ' Close file.
'Access2000Password = IIf(bTrimNulls, Replace(strPassword, Chr(0), ""),
strPassword)
End Function
>Lyle, just read that through again, there is no need to be sarcastic!
>
[quoted text clipped - 7 lines]
>> >
>> > Nick
'69 Camaro - 03 Jan 2007 04:51 GMT
Hi.
I can see why it's freeware. No one would pay for it. ;-)
HTH.
Gunny
See http://www.QBuilt.com for all your database needs.
See http://www.Access.QBuilt.com for Microsoft Access tips and tutorials.
http://www.Access.QBuilt.com/html/expert_contributors2.html for contact info.
> Give it a rest guys. This code has been in the public domain for years.
>
[quoted text clipped - 9 lines]
> ' The parameter Filename should contain the full name and
> ' location of the database for which you want the password.
Nick 'The Database Guy' - 03 Jan 2007 17:42 GMT
Thanks for your valiant attempt raskew, however this piece of code gave
me the same result as my '97 crack.
Thanks anyway.
Nick
> Give it a rest guys. This code has been in the public domain for years.
>
[quoted text clipped - 94 lines]
> Message posted via AccessMonster.com
> http://www.accessmonster.com/Uwe/Forums.aspx/databases-ms-access/200701/1
> Lyle, just read that through again, there is no need to be sarcastic!
>
> I need it for reasons already stated.
>
> Nick
You mean you missed it the first time around??? I thought that MDE ->
MDB joke was the dead giveaway if you missed the rest... you must have
been tired or something...
Nick 'The Database Guy' - 03 Jan 2007 17:27 GMT
I was tired, need I say more?
> > Lyle, just read that through again, there is no need to be sarcastic!
> >
[quoted text clipped - 5 lines]
> MDB joke was the dead giveaway if you missed the rest... you must have
> been tired or something...