Demisang
@Demisang
Backend PHP-developer

Какой метод шифрования был использован для сокрытия ссылки на изображение?

Задача: парсить картинки с сайта 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


Факты:
  1. Если бы использовался алгоритм одностороннего шифрования, то хеш всегда был бы одной и той же длины, а разная длина говорит о том, что возможно там по прежнему заширована ссылка на оригинал.
  2. Набор символов похож на односторонние функции типа SHA и т.п., только цифры и буквы нижнего регистра.
  3. Чем больше разница по времени между фотками, тем меньше первых символов совпадает, но количество совпадающих намекает: 16, 48 и 64 первых символа хеша могут совпадать.
  4. Я бы на месте разработчиков просто использовал AES для кодирования и раскодирвания, это безопасно и никто не расшифрует, но результат этой функции пришлось бы оборачивать в base64 или HEX, а в приведённых ссылках я не чую такого оборачивания.


Подскажите пожалуйста, может кто сталкивался и подобными хешами и знает как их декодировать?
Если это невозможно, то можете поделиться опытом по удалению водяного знака с картинок?
  • Вопрос задан
  • 241 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы