Задача: парсить картинки с сайта
japancar.ru
, но нужны картинки без водяного знака, у них раньше ссылка на оригинал хранилась просто в
base64, потом они изменили систему, но всё же остаётся надежда, потому что длина нового хеша не одинаковая, а значит есть шанс декодировать.
Например вот товар:
https://parts.japancar.ru/jc/view/parts/P619541830...
Раньше ссылка на картинку была такая:
https://8d861f77-be75-46f9-990c-e24de00dfe4b.selcdn.net/filecpd.php?u=aHR0cHM6Ly9kYXRhLmpjOS5ydS9pbWFnZXMvX2Jhc2VwYXJ0cy8yMDE4MDkvaW4xNTM2Mjc0NjgwLTA0ODUwLmpwZw==&tp=custom&w=423&h=317&s=1&l&nocrop&sc=ca5f4&ver=2
Здесь видим GET-параметр
u
, если сделать
base64 decode, то получим результат:
https://data.jc9.ru/images/_baseparts/201809/in1536274680-04850.jpg
(большая хорошая картинка без водяного знака)
А сейчас ссылка на эту же картинку выглядит так:
https://q1.s2.jc9.ru/filecpd.php?fo=5b0efb617c7b95349ec22925cd81104c5050659083ffe27da4f7be62ee533714c2c57542e8519e08eb4eff0837301bde49c5626d30b91e4498bf74bb79da72b2337ba4bd6ad3b14b&tp=custom&w=423&h=317&s=1&l&nocrop&sc=ca5f4&ver=2
Поменялось только название и содержимое GET параметра, было:
u=<base64: original image url>
стало:
fo=<некий текст, похожий на хеш, но разной длины>
Свежие фотки имеют длину
144 символа: [
ссылка]
5b0efb617c7b95349ec22925cd81104c5050659083ffe27da4f7be62ee533714c2c57542e8519e0826a0e1b24288f15861684e3e9679f838cc7023f6f985d75e3552fa23539b0bd6
И ещё для сравнения:
5b0efb617c7b95349ec22925cd81104c5050659083ffe27da4f7be62ee533714c2c57542e8519e08eb4eff0837301bde49c5626d30b91e4498bf74bb79da72b2337ba4bd6ad3b14b
5b0efb617c7b95349ec22925cd81104c5050659083ffe27da4f7be62ee533714c2c57542e8519e0826a0e1b24288f15861684e3e9679f838915044b0b2aca046a91655a800730853
5b0efb617c7b95349ec22925cd81104c5050659083ffe27da4f7be62ee533714fd750d693ff111d8125d65f5c02863b0f87a2e6c05572773ed92faf20ebfeddd8740dfb83debd968
5b0efb617c7b95349ec22925cd81104c5050659083ffe27da4f7be62ee533714fd750d693ff111d8125d65f5c02863b0f87a2e6c05572773960c1094f04ca2ec24d4b8d260cbead2
5b0efb617c7b95349ec22925cd81104c5050659083ffe27da4f7be62ee533714fd750d693ff111d8125d65f5c02863b0767a3275f2950d95290701da282d8036fa8c36e430c1fba3
Если покопаться, можно найти хеши другой длины (
160 символов): [
ссылка]
5b0efb617c7b95345595d86e6157c0c114617b1972321c1d91550be6881ca81c32208f60de916a6a928f53a532d2c6e04758d99c86ea978fba7ec9a40953761edd8242ad3851cecdff929b65edb1e68a
Ещё другой хеш
177 символов: [
ссылка]
5b0efb617c7b95349ec22925cd81104c5050659083ffe27d830f64b267a806acd4826aa86c319cbd78e2c07d07a8451416dafe8c22ca860690d36a90ee0f3b14172baf69302f641f48e147f078911745277f1fdfb2386e66
Факты:
- Если бы использовался алгоритм одностороннего шифрования, то хеш всегда был бы одной и той же длины, а разная длина говорит о том, что возможно там по прежнему заширована ссылка на оригинал.
- Набор символов похож на односторонние функции типа SHA и т.п., только цифры и буквы нижнего регистра.
- Чем больше разница по времени между фотками, тем меньше первых символов совпадает, но количество совпадающих намекает: 16, 48 и 64 первых символа хеша могут совпадать.
- Я бы на месте разработчиков просто использовал AES для кодирования и раскодирвания, это безопасно и никто не расшифрует, но результат этой функции пришлось бы оборачивать в base64 или HEX, а в приведённых ссылках я не чую такого оборачивания.
Подскажите пожалуйста, может кто сталкивался и подобными хешами и знает как их декодировать?
Если это невозможно, то можете поделиться опытом по удалению водяного знака с картинок?