Feb 12 2008, 11:55 AM
Post
#1
|
|
![]() Group: Admin Posts: 3,403 Joined: 23-February 06 From: PDX/TXL Member No.: 35 |
I have been scraping data off of a site (300KB) and they recently changed their URI string so that the date parameter has a hash of a date instead of the date itself.
The piece of the string I am looking at looks like this: CODE FDate=ZVbeOGQGDBnVmWDrJ6901w==&RDiret=Status And more exactly the FDate parameter. Any ideas on the hashing mechanism? I know it can't be one way encryption because there would be no way to interpret that as a date (and they have to interpret it as a date). -------------------- "There is a level of cowardice lower than that of the conformist: that of the fashionable non-conformist." |
|
|
|
![]() |
Feb 14 2008, 10:02 AM
Post
#2
|
|
![]() Group: Members Posts: 10,620 Joined: 23-February 06 From: Houston, TX Member No.: 48 |
I guess I'd have to know what the site is to undersand the meaning of those querystrings.
If the MD5 hash is just an encoded date and you have a reasonable idea of the format of the date, you can set up a quick program like this: (obviously pseudocode) CODE string hashtodecode = ytghdgadoghdlurgh9438gh48hg datettime date = startdate while(date < enddate) { date = date.adddays(1) if(getmd5hash(date.tostring) == hashtodecode) break } edit: you can do a quick google search for MD5 get hash C# or whatever language you're using to get the standard method everyone uses edit2: you'll also have to play around with the date.tostring("yyyy/MM/dd"), with different formats until you guess it correctly |
|
|
|
Feb 14 2008, 10:07 AM
Post
#3
|
|
![]() Group: Admin Posts: 3,403 Joined: 23-February 06 From: PDX/TXL Member No.: 35 |
I guess I'd have to know what the site is to undersand the meaning of those querystrings. If the MD5 hash is just an encoded date and you have a reasonable idea of the format of the date, you can set up a quick program like this: (obviously pseudocode) CODE string hashtodecode = ytghdgadoghdlurgh9438gh48hg datettime date = startdate while(date < enddate) { date = date.adddays(1) if(getmd5hash(date.tostring) == hashtodecode) break } edit: you can do a quick google search for MD5 get hash C# or whatever language you're using to get the standard method everyone uses Well the issue is more the format of the date (MM/DD/YYYY, YYYMMDD, etc.) as each of those have a different representation when hashed by MD5. Basically, the query string takes this parameter and compares it to a field in the database that holds a replica of it next to its actual value. It verifies that the data coming in is valid. -------------------- "There is a level of cowardice lower than that of the conformist: that of the fashionable non-conformist." |
|
|
|
Feb 14 2008, 10:22 AM
Post
#4
|
|
![]() Group: Members Posts: 10,620 Joined: 23-February 06 From: Houston, TX Member No.: 48 |
Well the issue is more the format of the date (MM/DD/YYYY, YYYMMDD, etc.) as each of those have a different representation when hashed by MD5. right, you could just come up with about 10-15 different formats and run the loop for each. once you have the format you're set. that .net MD5 hash class is pretty damn fast so it shouldn't take long. |
|
|
|
Hartmann Alright .NET gurus Feb 12 2008, 11:55 AM
chook There is something similar i deal with dll files a... Feb 12 2008, 11:33 PM
impala454 I wouldn't rule out one-way MD5 or SHA1 or som... Feb 13 2008, 02:52 AM
Hartmann It wouldn't have to sit in a table as you are ... Feb 13 2008, 08:38 PM![]() ![]() |
| Lo-Fi Version | Time is now: 14th August 2026 - 09:19 PM |