24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Доброго времени суток всем. Раньше на досках ни чего не создавал, так что как сподобился.
Это нить для публикации фото/видео про Alana.
На дваче не нашёл функии поиска по хэшам как например на https://archive.4plebs.org/(ниже он будет приводиться в качестве примера), возможно плохо искал и она есть, но не очевидна для меня.
Здесь попробую выложить все ~250 файлов,в виде "файл" и хэш в коментарии. Вроде в правилах это не считается спамом.
Если нашли фото и хотите сравнить с тем что опубликовано здесь, сравнить можно по хэшам. На 4plebs над фото тыкнув View Same вы получите строку адреса с хэшем (https://archive.4plebs.org/_/search/image/"хэш"/), после этого в этой теме поиском по странице проверить наличие фото.
Поиск на других досках по хэшу отсюда: Например https://archive.4plebs.org/_/search/image/"сюда подставить хэш"/ поиск будет по всем веткам. Способ второй перейти на 4plebs там тыкнуть на поиск, указать свой хэш в поле Image Hash, тыкнуть Search on all boards. Способ третий всё на том же 4plebs тыкнуть на поиск, перетащить фотку в поле Image Hash, тыкнуть Search on all boards.
Так же прилагаю два скрипта для локального использования (условие использования как есть, всё писал года полтора назад, вроде работает.).
Для GNU/Linux #!/bin/sh # file encoding utf-8
# Полученый hash будет помещён в файл result.txt рядом с батником. # Все временные файлы будут удалены автоматически. # Формат вывода в файле result.txt (hash "путь к файлу") # https://github.com/FoolCode/FoolFuuka/blob/93a8c238dc12c4b87e5d6c22a555173d46aac44d/src/MoDEL/Media.php # 648 'hash' => base64_encode(pack("H", md5(file_get_contents($file->getPathname())))), # 508 return str_replace(['+', '/', '='], ['-', '_', ''], $string);
# Обработка директории. dirfunc(){ filename="${dir}/dirlst.tmp" # Список файлов в директории в файл. ls > "${filename}" # Цикл построчное чтение списка файлов в директории. while read -r name; do # Получение base64 из md5 хеша res=`md5sum "${dir}/${name}" | awk '{printf $1}' | xxd -r -p | base64 | tr '+' '-' | tr '/' '_' | awk -F'=' '{ print $1 }'` # Вывод результата в файл. echo "${res} \"${dir}/${name}\"" >> "${dir}/result.txt" done < "${filename}" # Удаление временных файлов. rm "${filename}" # Завершение работы скрипта. exit 0 }
case "$1" in "") dirfunc ;; -h) echo 'Скрипту можно передать один аргумент (скрипт.sh имя_файла)' echo 'Скрипт запущеный без аргументов, обработает все файлы в директории где он находится' echo '-h Вызывает эту справку' ;; ) singlfunc ;; esac
# Проверка передан файл или запущен из директории. #if [[ -z "$1" ]]; then #{ # dirfunc #} #else #{ # fname=$1 # singlfunc #} #fi
exit 0
Для Windows @ECHO off chcp 1251 >NUL SETLocal ENABLEDELAYEDEXPANSION
rem ' Если получили ошибку "Программа CertUtil не обнаружена. Для помощи прочитайте содержимое bat." ' rem ' Попробуйте установить Windows Server 2003 Administration Tools Pack с сайта Майкрософт ' rem ' https://www.microsoft.com/en-us/download/details.aspx?id=16770 '
rem ' Для обработки одного файла - перетяните файл на этот батник. ' rem ' Для массовой обработки - положите батник в дирректорию с файлами и запустите его. ' rem ' Полученый hash будет помещён в файл result.txt рядом с батником. ' rem ' Все временные файлы будут удалены автоматически. ' rem ' Формат вывода в файле result.txt (hash "путь к файлу") '
rem проверка наличия certutil certutil >NUL IF %ERRORLEVEL% EQU 9009 ( ECHO Программа CertUtil не обнаружена. Для помощи прочитайте содержимое bat. PAUSE EXIT )
rem Проверка передан файл или запущен из директории. IF "%~1" == "" ( GOTO :dirfunc ) GOTO :singlfunc EXIT
rem =============== Обработка одиночного файла ==================== :singlfunc rem Принимает аргумент и возвращает MD5-хеш строки --- md5 648 FOR /F "DELIMS= TOKENS= USEBACKQ" i IN (`certutil -hashfile "%~1" MD5 ^|findstr /i ^[0-9a-f][0-9a-f].[0-9a-f][0-9a-f].[0-9a-f][0-9a-f]`) do ECHO i > "%~dp0md5hex.tmp" rem md5 шестнадцатиричную в бинарный формат --- pack 648 certutil -f -decodehex "%~dp0md5hex.tmp" "%~dp0md5bin.tmp" >NUL rem md5 бинарную в base64 --- base64_encode 648 certutil -encode "%~dp0md5bin.tmp" "%~dp0base64.tmp" >NUL rem Замена символов ['+', '/', '='], ['-', '_', ''] --- str_replace 508 FOR /F "USEBACKQ eol=- TOKENS=1 DELIMS==" a IN ("%~dp0base64.tmp") DO ( SET r=a SET r=!r:+=-! SET r=!r:/=_! rem Вывод результата в файл ECHO !r! "%~1" >> "%~dp0result.txt" ) rem Удаление временных файлов DEL "%~dp0md5bin.tmp" "%~dp0md5hex.tmp" "%~dp0base64.tmp" EXIT rem ================================================================================
rem =============== Обработка директории ==================== :dirfunc rem Список файлов в директории в файл. DIR /b "%~dp0" > "%~dp0flist.tmp" rem Построчное чтение списка файлов в директории FOR /F "DELIMS= TOKENS= USEBACKQ" n IN ("%~dp0flist.tmp") DO ( rem Принимает аргумент и возвращает MD5-хеш строки --- md5 648 FOR /F "DELIMS= TOKENS= USEBACKQ" s IN (`certutil -hashfile "%~dp0n" MD5 ^|findstr /i ^[0-9a-f][0-9a-f].[0-9a-f][0-9a-f].[0-9a-f][0-9a-f]`) do ( ECHO s > "%~dp0md5hex.tmp" rem md5 шестнадцатиричную в бинарный формат --- pack 648 certutil -f -decodehex "%~dp0md5hex.tmp" "%~dp0md5bin.tmp" >NUL rem md5 бинарную в base64 --- base64_encode 648 certutil -encode "%~dp0md5bin.tmp" "%~dp0base64.tmp" >NUL rem Замена символов ['+', '/', '='], ['-', '_', ''] --- str_replace 508 FOR /F "USEBACKQ eol=- TOKENS=1 DELIMS==" b IN ("%~dp0base64.tmp") DO ( SET r=b SET r=!r:+=-! SET r=!r:/=_! rem Вывод результата в файл ECHO !r! "%~dp0%%n" >> "%~dp0result.txt" ) rem Удаление временных файлов DEL "%~dp0md5bin.tmp" "%~dp0md5hex.tmp" "%~dp0base64.tmp" ) ) rem Удаление временных файлов DEL "%~dp0flist.tmp" EXIT
В общем это всего лишь предложение. Некоторые фото и видео могут быть не его, Не по лицу затрудняюсь идентифицировать. Have fun :) Первый хэш: 8WXUY0dqex38BLlgfHf3ZA
Это нить для публикации фото/видео про Alana.
На дваче не нашёл функии поиска по хэшам как например на https://archive.4plebs.org/(ниже он будет приводиться в качестве примера),
возможно плохо искал и она есть, но не очевидна для меня.
Здесь попробую выложить все ~250 файлов,в виде "файл" и хэш в коментарии. Вроде в правилах это не считается спамом.
Если нашли фото и хотите сравнить с тем что опубликовано здесь, сравнить можно по хэшам.
На 4plebs над фото тыкнув View Same вы получите строку адреса с хэшем (https://archive.4plebs.org/_/search/image/"хэш"/),
после этого в этой теме поиском по странице проверить наличие фото.
Поиск на других досках по хэшу отсюда: Например https://archive.4plebs.org/_/search/image/"сюда подставить хэш"/ поиск будет по всем веткам.
Способ второй перейти на 4plebs там тыкнуть на поиск, указать свой хэш в поле Image Hash, тыкнуть Search on all boards.
Способ третий всё на том же 4plebs тыкнуть на поиск, перетащить фотку в поле Image Hash, тыкнуть Search on all boards.
Так же прилагаю два скрипта для локального использования (условие использования как есть, всё писал года полтора назад, вроде работает.).
Для GNU/Linux
#!/bin/sh
# file encoding utf-8
# Полученый hash будет помещён в файл result.txt рядом с батником.
# Все временные файлы будут удалены автоматически.
# Формат вывода в файле result.txt (hash "путь к файлу")
# https://github.com/FoolCode/FoolFuuka/blob/93a8c238dc12c4b87e5d6c22a555173d46aac44d/src/MoDEL/Media.php
# 648 'hash' => base64_encode(pack("H", md5(file_get_contents($file->getPathname())))),
# 508 return str_replace(['+', '/', '='], ['-', '_', ''], $string);
fname=""
dir=`pwd`
# Проверка зависимостей.
command -v md5sum >/dev/null 2>&1 || { echo "Не установлена md5sum" >&2; exit 1; }
command -v awk >/dev/null 2>&1 || { echo "Не установлена awk" >&2; exit 1; }
command -v xxd >/dev/null 2>&1 || { echo "Не установлена xxd" >&2; exit 1; }
command -v base64 >/dev/null 2>&1 || { echo "Не установлена base64" >&2; exit 1; }
command -v tr >/dev/null 2>&1 || { echo "Не установлена tr" >&2; exit 1; }
# Обработка одиночного файла.
singlfunc(){
fname=$1
# Получение base64 из md5 хеша
res=`md5sum "${dir}/${name}" | awk '{printf $1}' | xxd -r -p | base64 | tr '+' '-' | tr '/' '_' | awk -F'=' '{ print $1 }'`
# Вывод результата в файл.
echo "${res} ${dir}/${name}" >> "${dir}/result.txt"
# Завершение работы скрипта.
exit 0
}
# Обработка директории.
dirfunc(){
filename="${dir}/dirlst.tmp"
# Список файлов в директории в файл.
ls > "${filename}"
# Цикл построчное чтение списка файлов в директории.
while read -r name; do
# Получение base64 из md5 хеша
res=`md5sum "${dir}/${name}" | awk '{printf $1}' | xxd -r -p | base64 | tr '+' '-' | tr '/' '_' | awk -F'=' '{ print $1 }'`
# Вывод результата в файл.
echo "${res} \"${dir}/${name}\"" >> "${dir}/result.txt"
done < "${filename}"
# Удаление временных файлов.
rm "${filename}"
# Завершение работы скрипта.
exit 0
}
case "$1" in
"")
dirfunc
;;
-h)
echo 'Скрипту можно передать один аргумент (скрипт.sh имя_файла)'
echo 'Скрипт запущеный без аргументов, обработает все файлы в директории где он находится'
echo '-h Вызывает эту справку'
;;
)
singlfunc
;;
esac
# Проверка передан файл или запущен из директории.
#if [[ -z "$1" ]]; then
#{
# dirfunc
#}
#else
#{
# fname=$1
# singlfunc
#}
#fi
exit 0
Для Windows
@ECHO off
chcp 1251 >NUL
SETLocal ENABLEDELAYEDEXPANSION
rem ' Если получили ошибку "Программа CertUtil не обнаружена. Для помощи прочитайте содержимое bat." '
rem ' Попробуйте установить Windows Server 2003 Administration Tools Pack с сайта Майкрософт '
rem ' https://www.microsoft.com/en-us/download/details.aspx?id=16770 '
rem https://github.com/FoolCode/FoolFuuka/blob/93a8c238dc12c4b87e5d6c22a555173d46aac44d/src/MoDEL/Media.php
rem 648 'hash' => base64_encode(pack("H", md5(file_get_contents($file->getPathname())))),
rem 508 return str_replace(['+', '/', '='], ['-', '_', ''], $string);
rem ' Для обработки одного файла - перетяните файл на этот батник. '
rem ' Для массовой обработки - положите батник в дирректорию с файлами и запустите его. '
rem ' Полученый hash будет помещён в файл result.txt рядом с батником. '
rem ' Все временные файлы будут удалены автоматически. '
rem ' Формат вывода в файле result.txt (hash "путь к файлу") '
rem проверка наличия certutil
certutil >NUL
IF %ERRORLEVEL% EQU 9009 (
ECHO Программа CertUtil не обнаружена. Для помощи прочитайте содержимое bat.
PAUSE
EXIT
)
rem Проверка передан файл или запущен из директории.
IF "%~1" == "" ( GOTO :dirfunc )
GOTO :singlfunc
EXIT
rem =============== Обработка одиночного файла ====================
:singlfunc
rem Принимает аргумент и возвращает MD5-хеш строки --- md5 648
FOR /F "DELIMS= TOKENS= USEBACKQ" i IN (`certutil -hashfile "%~1" MD5 ^|findstr /i ^[0-9a-f][0-9a-f].[0-9a-f][0-9a-f].[0-9a-f][0-9a-f]`) do ECHO i > "%~dp0md5hex.tmp"
rem md5 шестнадцатиричную в бинарный формат --- pack 648
certutil -f -decodehex "%~dp0md5hex.tmp" "%~dp0md5bin.tmp" >NUL
rem md5 бинарную в base64 --- base64_encode 648
certutil -encode "%~dp0md5bin.tmp" "%~dp0base64.tmp" >NUL
rem Замена символов ['+', '/', '='], ['-', '_', ''] --- str_replace 508
FOR /F "USEBACKQ eol=- TOKENS=1 DELIMS==" a IN ("%~dp0base64.tmp") DO (
SET r=a
SET r=!r:+=-!
SET r=!r:/=_!
rem Вывод результата в файл
ECHO !r! "%~1" >> "%~dp0result.txt"
)
rem Удаление временных файлов
DEL "%~dp0md5bin.tmp" "%~dp0md5hex.tmp" "%~dp0base64.tmp"
EXIT
rem ================================================================================
rem =============== Обработка директории ====================
:dirfunc
rem Список файлов в директории в файл.
DIR /b "%~dp0" > "%~dp0flist.tmp"
rem Построчное чтение списка файлов в директории
FOR /F "DELIMS= TOKENS= USEBACKQ" n IN ("%~dp0flist.tmp") DO (
rem Принимает аргумент и возвращает MD5-хеш строки --- md5 648
FOR /F "DELIMS= TOKENS= USEBACKQ" s IN (`certutil -hashfile "%~dp0n" MD5 ^|findstr /i ^[0-9a-f][0-9a-f].[0-9a-f][0-9a-f].[0-9a-f][0-9a-f]`) do (
ECHO s > "%~dp0md5hex.tmp"
rem md5 шестнадцатиричную в бинарный формат --- pack 648
certutil -f -decodehex "%~dp0md5hex.tmp" "%~dp0md5bin.tmp" >NUL
rem md5 бинарную в base64 --- base64_encode 648
certutil -encode "%~dp0md5bin.tmp" "%~dp0base64.tmp" >NUL
rem Замена символов ['+', '/', '='], ['-', '_', ''] --- str_replace 508
FOR /F "USEBACKQ eol=- TOKENS=1 DELIMS==" b IN ("%~dp0base64.tmp") DO (
SET r=b
SET r=!r:+=-!
SET r=!r:/=_!
rem Вывод результата в файл
ECHO !r! "%~dp0%%n" >> "%~dp0result.txt"
)
rem Удаление временных файлов
DEL "%~dp0md5bin.tmp" "%~dp0md5hex.tmp" "%~dp0base64.tmp"
)
)
rem Удаление временных файлов
DEL "%~dp0flist.tmp"
EXIT
В общем это всего лишь предложение. Некоторые фото и видео могут быть не его, Не по лицу затрудняюсь идентифицировать.
Have fun :)
Первый хэш: 8WXUY0dqex38BLlgfHf3ZA