Так как тема децентрализованной борды иногда поднимается, решил изложить свои велосипедостроительские мысли по ней: http://rghost.net/8MVTk6pDk https://u.pomf.io/jhazuw.odt Это конечно просто фантазии диванного эксперта с поверхностными знаниями. Но вроде ничего сложного - умный школьник, увлекающийся программированием запилил бы рабочий прототип за месяц по вечерам, я уверен, три школьника бы сделали большую часть того, что там очевидно как делать. Просто наверно децентрализованные форумы никому не нужны на самом деле - ведь ни Syndie, ни Bitmessage так никто и не допилил до чего-то удобного.
>>11930 (OP) ОП, загугли "наноборда" к сожалению, не взлетело борда даже некоторое время была активной - в кач-ве транспорта использовалась прога типа битторента которая позволяла шарить файлы, уже не помню как называлась. об анонимности там говорить не приходилось - все айпишники светились
>>13221 ссылку на что? в гугле можно найти парочку заархивированных и живых тредов с описаниями и линки на некоторый софт. но все это пока не собрано в кучу. например есть "проект нанохтмл" - на вид не особо отличается от обычной борды на вакабе но его транспорт - текстовые файлики, которые еще нужно как-то распространять и аггрегировать. пнгкриптер есть, можно прятать в пнгшку целые треды но опять же он не прикручен к тому же нанохтмл. в нанохтмл кстати идея наноборды дополнена картинками причем сделано это без изменений в самом "протоколе" - картинка там как ссылка в самом нанопосте, ссылка - такой же хэш (как-то так). есть клиент под десктопы, я его давно не смотрел не скажу уже насколько он готов и насколько много ручной работы там необходимо. некий кронос или крос делал адвансд версию с описанием аттачей в джейсоне, с таймштампами на дажве. тоже не взлетело. таймштампы - дело гиблое. это легко могут начать эксплуатировать чтобы создать временные парадоксы или просто вайпать. суть нанопостов в их цепочесности каждый нанопост - ссылка на корневой пост и ссылка на пост, на который отвечаем (можно отвечать на тот же корневой пост) а сами ссылки - это хэш всего нанопоста. таким образом имея набор нанопостов можно восстановить цепочку от начала треда до последнего доступного сообщения. сообщения которые отвечают на одно и то же сообщение могут быть перемешаны но тут порядок и не важен. предполагается что если нужен какой-то диалог, какая-то цепочка то юзеры сами добиваются этого путем ответов на конкретные сообщения
еще раз, вот нанопост (искусственный пример): 1234567890abcdef1234567890abcdefТекст поста Мы видим две ссылки вначале - на тред и на пост на который отвечаем, ну а дальше текст поста, всё Хэш взят с UTF-8 байтов - MD5 - первые 8 байт, записывается в шестандцатиричной форме Хэш атаки (поптыка затереть чей-то пост) предотвращаются эвристической оценкой содержимого нанопоста - первые 32 символа обязаны попадать в 0-9a-f, а дальше не должно быть "абракадабры" можно также отсекать единичные абракадабра-посты в единичных тредах и таким образом хэш-атаки оказываются бесполезными
передача файлов - не задача наноборды. нагружать ее файлами и даже картинками это не совсем правильно. хороший пример - нанохтмл - там с картинок считается хэш и можно в постах ссылаться на хэш картинки. например [img]1234567890abcdef[/img] - и как и по каким каналам пользователь получит эту картинку это уже дело десятое. если все таки необходимо поделиться уникальным изображением (а не колобком который давно есть у всех) и хочется делать это именно через нанопосты то есть base64 и подобные системы и тогда будет что-то типа [img-base64]bSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG............1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb[/img-base64]
>>13228 короче говоря если взять идею нанопостов (которые и формируют наноборду), ничем больше эту идею не утежелять, и собрать всё инструменты в одну софтину:
аггрегатор нанопостов с интернета (сбор пнг-контейнеров, стеготекстов)
формирователь и просмотрщик тредов с помощником формирования своих постов
полуавтоматическая система для распространения своих нанопостов и ретрансляции имеющихся нанопостов. в идеале достаточно будет один раз настроить на конкретную (реальную борду) а дальше только вводить капчу (в идеальном идеале капча будет распознаваться автоматически либо можно выбрать борду без капчи)
всё это сдобрить хотя бы простейшим шифрованием чтобы у людей была возможность закрыться "ключом" типа "2ch" и пусть и не менять его но хотя бы иметь ощущение защищенности или способности как-то оградиться от посторонних глаз даже внутри наносообщества
тогда должно взлететь. хоть идея и хороша но без годной, юзер-френдли реализации мало кто заинтересуется. работы не очень много
>>13229 не стоит забывать и про то, что участникам нужно сперва договориться о местах паразитирования. проще всего это сделать прошив "софтину" настроечками для десятка популярных борд, в общем добиться чтобы все участники с ходу постили-репостили на 10 разных борд рандомно. забанят на одной - останутся 9 позже репозиторий софтины пополнять новыми настройками, договариваться в нанотредах. но для начала необходима такая вот точка координации
чем наноборда лучше всяких десутолков битмесседжей и токсов так это тем что она: 1) имеет привычный теплый ламповый формат АИБ 2) может паразитировать на всём вышеперечисленном, причем вперемешку
Скоро выкачу новую версию наноклиента для наноборды для Windows/OS X/Linux. Ожидаемые фичи уместятся в одном приложении: - автосборщик/расшифровщик ПНГшек с заранее заданных УРЛок тредов - просмотрщик тредов/постов с возможностью ответа в тред и создания треда - формирование пнгшек (со своими/свежими чужими нанопостами) предназначенных для заливки дабы ваши и чужие ответы появились у других людей которые настроили сборщик на треды в которые вы будете постить
вот только заливкой пнгшек придется заниматься вручную и пока что без поддержки base64 картинок, картинок из библиотеки (как в нанохтмл) и прочего
>>13263 шарпец. формат нанопостов изменю - не вижу смысла ссылаться на "тред" если по полю "ответ на" можно восстановить программно всю цепочку. в целом идея ссылки на тред порождает сложные правила и ситуации, так что лучше убрать. теперь хэш будет длиннее в 2 раза.
>>13284 так mono же. шарпец - не есть дотнет. лично тестирую на Windows7, Windows8.1, Ubuntu 11, OS X 10.11
>>13328 битсинк не анонимен, qr коды - это для совсем уж ядерного пиздеца когда интернета вообще не будет, тогда и правда в метро qr-коды расклеивать/собирать останётся.
на данный момент рассматривается идея паразитирования на нескольких АИБ параллельно. так сказать, диверсификация. транспорт - пнг-картинки с вшитыми нанопостами, смотрю также в сторону стеготекста (основанный на сходстве кириллицы/латинницы - 20 букв прячут одну, на четности - 60 букв прячут одну, то есть плотность низкая но засечь почти нереально).
что касается битсинка все же можно и его задействовать но пока концентрируюсь на парсере заданных тредов с разных борд одновременно.
в клиенте по команде пользователя будет создаваться пнгшка (в качестве оригинала будет взята рандомная картинка из папки с пользовательскими картинками) с последними нанопостами которые написал пользователь, а также с рандомным набором свежих и не очень чужих постов - ради подкрепления распространения постов в наноборде
в 512х512 пнгшку влезут десятки постов! для сравнения в пост со стеготекстом (подстановка(1)/не подстановка(0) латинских букв вместо кириллических - аеросух) размером с этот влезет только нанопост из ~60 символов (~20 на "беспалевном" (текст разбивается по пробелам, куски от 3 и меньше символов игнорятся, считаются биты: четное количество символов в куске - 1, иначе - 0, тут придется автоматически вставлять знаки препинания в помощь или пропускать/дублировать буквы) варианте)
простота, минимализм, надежность - формат нанопоста: хэшпостанакоторыйотвечаемтекст ответа и всё. строчка выше это нанопост. с неё считается хэш этого нанопоста, который можно использовать чтобы сослаться на него. тут мало пространства для махинаций. просмотрщик базы нанопостов, генератор ответа, сборщик нанопостов - все это простейшие приложения, которые независимо могут быть написаны разными участниками (при условии что соблюдается договоренность о способе шифрования и местах распространения)
независимость от какого-либо сетевого протокола, сервера, аплоад это маскировочные действия (например, добавление картинки к посту на АИБ). при этом наноборда может одновременно поразить десятки АИБ своими скрытыми постами но при этом останется единой бордой для участников и не умрет если одна АИБ вдруг "отпадёт".
наноборда это не просто чей-то чатик, а иерархия сообщений, иными словами - организованные треды, история, которая естественным образом проникает на компьютеры участников благодаря идее ретрансляции постов.
отсутствие "хозяина" и невозможность модерации
возможность выйти за рамки АИБ (везде где можно хостить картинки или даже просто писать текст (стеготекст позволит относительно незаметно общаться нанопостами небольших размеров)
теоретически наноборда может жить даже без интернета - физическое размещение нанопостов в реальном мире - разбрасывание компакт-дисков, расклеивание QR-кодов, bluetooth-приложения, а также несанкционированные цифровые радиопередатчики - позволит наноборде хоть и очень медленно, но существовать
>>13384 кстати в гуглдокс можно смотреть все форматы включая docx вообще многие люди месяцами не сталкиваются с необходимостью открыть офисный документ
>>13335 в моно немало багов. как нерешенных так и не обнаруженных. есть различия в зависимости от платформы. на хеллоуворлдах заметить сложно но на более-менее серьезном проекте придется напрячься чтобы была "кроссплатформенность". например ToString() экземпляра FileInfo может на одной платформе вернуть полный путь, а на другой - только имя файла. одно радует - запускается экзешник везде без перекомпиляции. +у винды преимущество - не нужно ставить моно. шарп как язык мощнее и выразительней джавы. в остальном джава рулит. у шарпа плохо с интерфейсом. был винформс да устарел. возможности примитивны. был впф да устарел и кроссплатформенности ноль. есть гтк - но на вид ущербное г и лишние мегабайты установки. надо делать локальный сервак и строить красивые хтмл странички.
Практически готов новый клиент наноборды. Осталось пару мелочей допилить только и проверить, думаю через 1-3 дня выкачу публичный релиз вместе с исходниками конечно же. Как это примерно будет выглядеть: слева списком будут показываться новые посты, по клику можно будет перейти в их тред (и они исчезнут из списка) по центру окно просмотрщика тредов - по клику на сообщение выводится меню: войти в тред, ответить в тред, перейти на уровень выше, добавить пост в закладки, спрятать пост; по клику на пустое место выводится меню: собрать ПНГшку, перейти на уровень выше, поискать нанопосты, выйти справа - окошко закладок. по клику - переход на закладку, дабл-клик удаляет закладку
нанопосты ищутся в тредах ссылки на которые прописаны (каждая ссылка в новой строчке) в файлике рядом с программкой. треды парсятся на предмет пнгшек, пнгшки скачиваются (повторно - не скачиваются, программа помнит что качалось, а что нет). делается попытка найти в скачанных пнгшках нанопосты, в случае успеха пользователь увидит новые посты в окошке слева.
собрать ПНГшку - значит поместить свои свежие посты, недавно скачанные посты, а также некоторый набор случайных постов со всей имеющейся базы в ПНГфайл (в нижние биты цвета, что незаметно для человеческого глаза). в качестве основы берется случайная картинка из папки containers (её надо наполнить своими картинками, возможно, в комплекте будет набор картинок). итоговая ПНГшка с нанопостами помещается в папку upload. в эту папку нужно периодически заглядывать и загружать оттуда картинки на АИБ в условленные треды (те же треды что и в конфигурационном файле поиска) поскольку картинка физически меняется, одну и ту же картинку можно много раз аплоадить на реальную АИБ. программа при каждом закрытии собирает ПНГшку так что папка может засоряться, можно просто эти ПНГшки чистить и отправлять только самые свежие.
существует один корневой пост как точка синхронизации. вообще каждый пост это также и тред. вложенность может быть бесконечной. такова особенность наноборды, имхо это очень удобно.
>>13463 пароль на скачивание: 2ch http://rghost.net/7frYqC9zn в комплекте программа, описание (README) и исходники. UI писался в спешке, планирую заменить все на веб-интерфейс (как в усопшем проекте nanohtml) позже залью на гитхаб в настройках пока указан этот тред. картинка выше - пнг-контейнер. вызовите Search posts один раз, тред распарсится, пнгшка скачается, увидите тестовые посты. попробуйте создать посты (и попробуйте особо не мусорить, создавайте осмысленные посты). собранный пнг контейнер постить вручную сюда же. если взлетит договоримся о местах обитания и заживём.
>>13465 и копипаста с 410чана (более подробное объявление) Новый клиент наноборды!
Умеет парсить АИБ-треды (из пользовательского списка), качать и расшифровывать с них пнгшки (формат контейнера другой), формирует пнг-контейнеры (для последующей ручной отправки). В контейнеры суёт свежие посты (которые написал сам юзер и просто недавно скачанные, а также рандомный набор из всех постов в базе пользователя). Способ шифрования пнгшек отличается от изложенного в ОП-посте, разработана своя 8-битная кодировка пригодная для жителей СНГ. По нанопостам немного улучшил изначальную идею. Вместо хэша треда и хэша поста на который отвечаем оставлен только хэш поста на который отвечаем. Хэш увеличен в два раза. Поскольку и в самой наноборде каждый пост может быть тредом, логика остаётся прежней. Вытащить полный тред рекурсивно тоже не будет проблемой. Пока что просмотр ответов одного уровня. Таймштампов которые многие хотели бы всунуть осознанно избежал. Их слишком легко будет подделать, а воспринимать инфу можно и без них ведь главное что посты ссылаются друг на друга и можно выстроить цепочки. Вложения, картинки - легко подключить чуть позже (например base64) не меняя основной идеи.
Исходники внутри. Читаем README. Планируется переход на веб-странички (локальный сервер), но пока что - окошечки.
Инструменты борьбы с вайпами пока только готовятя. Это будет и пароль, который позволит "огородиться" и спам-фильтры, а также лимит на размер поста. Разумеется это будет всего лишь борьба а не полное предотвращение. Ну, от вайпов никуда не деться. Однако на данный момент уже есть возможность скрывать неугодные юзеру посты - они не будут показываться и распространятся в контейнерах. Таким образом может проявляться "модерация улья". Здесь как плюсы так и минусы (вы можете оказаться настолько противным в своих постах что вас вдруг все попрячут и в итоге не будут репостить). Если заморочиться то можно создать систему коллективного проставляния рейтинга постам. Кроме того пользователь уже сейчас может делать закладки, чтобы не потеряться в куче новых постов.
>>13337 А если будет сплит, как в dns? Ну, не успею синхронизироваться и насоздают своих гетов. Потом кто-то ещё получит гет и будет бардак. Или у тебя всё на хешах + рандом?
>>13412 1 почему lsb, а не f5 или что-нибудь нормальное? 2 зачем вообще наполнять картинками папку, если есть гугл имейджес, яндекс-картинки, фликр, вк, фб и двач с фочаном?
>>13472 бардак в наноборде сложно представить так как каждый нанопост ссылается на другой нанопост. а ссылаются посредством хэша который расчитывается не тоьлко с сообщения поста но и с хэша поста на который ссылается пост. короче говоря получаются цепочки. кто когда и в каком порядке и объеме будет их загружать - не особо важно, клиентское приложение все структурирует как положено.
>>13473 пришлось. нельзя просто взять и сохранить текст в байты. байты это просто числа от 0 до 255. нужно еще знать какой букве соответствует какое число. для этого и есть кодировки. глянул я на имеющиеся 8-битные кодировки и охуел от количества лишнего говна идущего еще со времен ДОСа а то и из более древних 60-х терминалов, а также из ебанутых языков типа французского (всякие умляуты аеоui). К тому же к сожалению на разных платформах тот же моно может по разному кодировать UTF-8. В нанокодировку вошло всё самое необходимое и осталось место в принципе достаточное чтобы попытаться ублажить еще и немцев/французов но нахуй они нам нужны? Для русского украинского беларусского и английского всё есть.
>>13474 f5 - не слыхал, прости. картинку сильно визуально портит? влазит больше да? текущий вариант когда влазит около 100кб в 512х512 пнг - вполне хорош. можно задействовать 2 нижних байта но тогда будет шум. какие-то манипуляции с самим пнг считаю недопустимыми, нужно работать исключительно с цветами пикселей, поскольку вот здесь на хиккаче например на сервере стоит кранчер и пнг которую ты заливаешь потом бинарно уже не совпадает с оригиналом. но пиксели остаются тех же цветов.
>>13475 я не ОП. гитом пользоваться умею, пока что влом заводить аккаунт (свой палить не хочу).
>>13507 search posts надо нажимать каждый раз когда хочешь скачать обновления. думаю не сложно добавить автоскачивание но так ты лучше контролируешь запросы которые проходят с твоей машины.
Просьба к тем, кто начинает постинг на новом месте - сообщать остальным сюда или на наноборду (через этот тред) чтобы люди дополнили свой places.txt.
>>13482 Вирусов нет. Если боишься - скачай xamarin и сбилди сам.
>>13496 Как я уже писал, думаю сделать веб-интерфейс как у нанохтмл. Но пока что работает под Win/OSX/Linux платформами (на OS X - с глючками, но вряд ли у многих стоит эта ось).
>>13497 В новом релизе ридми переписан. Будут снова проблемы с кодировкой - сообщай.
>>13501 Пока что не было времени на реализацию аналога нанохтмл. Переход на веб-интерфейс будет плавным и полностью совместимым с текущим клиентом. Как парсить пастбин - ходить по всем ссылкам? Дополнительные протоколы такие как битсинк можно будет подключить в виде плагинов, например. Что-нибудь подумаю в этом направлении.
Просьба к тем, кто начинает постинг на новом месте - сообщать остальным сюда или на наноборду (через этот тред) чтобы люди дополнили свой places.txt.
>>13482 Вирусов нет. Если боишься - скачай xamarin и сбилди сам.
>>13496 Как я уже писал, думаю сделать веб-интерфейс как у нанохтмл. Но пока что работает под Win/OSX/Linux платформами (на OS X - с глючками, но вряд ли у многих стоит эта ось).
>>13497 В новом релизе ридми переписан. Будут снова проблемы с кодировкой - сообщай.
>>13501 Пока что не было времени на реализацию аналога нанохтмл. Переход на веб-интерфейс будет плавным и полностью совместимым с текущим клиентом. Как парсить пастбин - ходить по всем ссылкам? Дополнительные протоколы такие как битсинк можно будет подключить в виде плагинов, например. Что-нибудь подумаю в этом направлении.
>>11930 (OP) Бля, ты не мог в текстовом формате выложить? Ну пиздец, зачем быть таким уебком? Возьми маркдаун, блядь, и пиши в нем, нахуя тебе одт? Пиздец просто.
>>13562 У него стеганография в картинках, если я правильно понял. Вообще, идея отвязки от браузера изначально ущербная, нужно было всё в виде расширения делать.
>>13562 Я не оп, но ты можешь и тему перечитать. Наноборда паразитирует пока лишь на других средствах, пока лишь имиджбордах. Можно добавить даже qr-коды.
Проясню немного. Я не ОП этого треда. Я создаю Наноборду. Я автор оригинальной идеи. Постил эту идею еще пару лет назад на эту борду а также в 410чан. Наноборда это по сути децентрализованная анонимная имидж борда. Именно поэтому я написал в этот тред. Предыдущая работающая реализация нанобрды (nanohtml) состояла из генератора веб-страниц (с тредами), который считывал папку с картинками текстовыми файликами - в каждом файлике - нанопост, опционально ссылающийся на картинку по хешу. С веб-страницы можно было написать ответ и скачать файлик который нужно распространить. Картинки и текстовые файлики нужно было распространять вручную. Тестировалось это все несколькими анонами с использованием BitSync (шарили папку с текстовыми файликами и картинками). Просуществовала эта версия наноборды недолго (возможно до сих пор существует но это очень вряд ли). Уже тогда была идея и некоторые инструменты по "паразитированию" на других имиджбордах посредством обмена пнг-картинками с вшитыми нанопостами, но практического применения не было.
Новая реализация наноборды, которую я делаю сейчас, имеет слегка отличающийся формат нанопостов. Хеш увеличен в 2 раза, каждый пост теперь ссылается не на 2 поста (один из которых "тред"), а на один. Я посчитал ссылку на 2 поста излишней поскольку вокруг любого нанопоста может сформироваться тред и различие между тредами и постами размыто даже в версии со ссылкой на 2 поста. Теперь явно подчеркивается, что участники отвечают нанопостом на нанопост и могут смотреть ответы на нанопост, которые тоже являются нанопостами, на которые тоже могут быть и ответы и так бесконечно. Программно можно развернуть любой нанопост до полного "треда", но пока что я не вижу в этом необходимости и если это сделать слишком "высоко" то результат получится огромным.
Кроме формата идея не особо поменялась. Недавно я выпустил новый оконный клиент наноборды. Его особенность - реализовано скачивание и распознавание пнг-контейнеров с заданного списка аиб тредов. Реализована упаковка пнг-контейнера. Постинг пнг-контейнеров ручной. Это было всего пару дней назад.
Сейчас я сконцентрировался на создании веб-интерфейса (на основе локального сервера, примерно как организован клиент i2p). Это значит, что нанопосты можно просматривать по адресу 127.0.0.1 (+некий порт), там же постить ответы, вызывать скачивание новых постов, вызывать формирование своего пнг-контейнера и другое. Что еще планирую добавить: разметку картинки (будет преобразование в jpeg, и уменьшение особо больших картинок. это вынужденная мера поскольку пнг-контейнер не резиновый) шифрование (мера безопасности. по ключу можно будет полностью огородиться в свою наноборду)
>>13575 > Сейчас я сконцентрировался на создании веб-интерфейса (на основе локального сервера, примерно как организован клиент i2p).
Очень плохая идея, так как во-первых, будут XSS (как в i2p), а во-вторых, невозможно поставить на машину с кучей пользователей (на свой сервер под отдельного пользователя и т.п.).
>>13575 Что касается альтернативных путей распространения. Их может быть сколь угодно много. Наноборда не требует каких-либо правил или протоколов распространения. Каждый нанопост независим, может распространяться отдельно и содержит всё, что нужно, чтобы его можно было бы потом увязать в общую наноборду. Поэтому для того, чтобы наноборда работала достаточно организовать обмен нанопостов.
В способе с пнг-контейнерами (в один контейнер влазят десятки или сотни (если чисто текстовых) постов) происходит постоянная ретрансляция предыдущих постов (недавно полученные участником нанопосты отправляются чаще, но в целом в контейнер может попасть любой пост, даже самый старый), за счет чего создается информациионное насыщение и поэтому даже один скачанный пнг-контейнер для нового участника может дать достаточно объемный слепок состояния наноборды, а несколько свежих контейнеров от разных участников дадут ему практически полную базу, пусть и с пробелами в очень "старых" "тредах".
Вместительность пнг-контейнеров: 512x512 = 96Кб 1024x1024 = 348Кб 2048x2048 = 1.5Мб В веб-клиенте предполагается насильное уменьшение jpeg картинок пока размер не превратится в 32Кб или меньше. Думаю об опции разрешения постинга и хайрез картинок но такие нанопосты не будут попадать в другие пнг-контейнеры при ретрансляции. Всё-таки наноборда это не файлобменник и условия у нас спартанские.
Теперь что касается QR-кодов. Это апокалиптический вариант, который предполагает отсутствие интернета и присутствие людей страстно желающих поддерживать жизнь наноборды, которые расклеивают и считывают qr-коды по людым местам таким как метро. Очень фантастический вариант но технически вполне возможный. Но надо понимать, что в одном QR-коде может уместиться разве что мой вот этот вот пост. Поэтому "трафик" в наноборде будет уже далеко не тот - это ж прикиньте сколько надо будет распечатать, расклеить и считать qr-кодов.
Поэтому для варианта с отключением/блокированием интернетов лучше подойдёт распространение через mesh-сети на wifi, bluetooth (в забитом вагоне метро самое оно) а также с помощью несанкционированной сети радиоретрансляторов (замаскированных во дворах) на wifi (для домов вокруг) и других волнах "дальнего действия". Лоу-тек вариант - разбрасывание дискеток, компакт-дисков, перфокарт - слишком много минусов (затратно, низкая скорость обмена).
Но какой бы способ не был бы выбран - наноборду (и даже её программный клиент) менять не придется.
>>13577 хсс - понадобятся дополнительные меры предосторожности от пользователя, насчет машины с кучей пользователей - хз где это может пригодится, у меня своя машина, что хочу то и творю или я не так понял? вообще учитывая такие опасности, стоит ли забить на веб-интерфейс и развивать дальше оконный клиент? возможность добавить разметку и изображения есть и там, если что.
>>13578 > вообще учитывая такие опасности, стоит ли забить на веб-интерфейс и развивать дальше оконный клиент?
Самый главный вопрос в том, на чем ты будешь это все кодить. .NET тянуть в любом случае не надо. Qt и C++ неплохой компромисс для кроссплатформенной гуевины. Может быть Python + Tk, но вендобляди не одобрят, наверное. Если очень хочется web, то я бы смотрел в сторону standalone HTML5-приложений, которые устанавливаются в браузер, но по-моему технология сыровата. Скорее пересилил бы свое отвращение к плюсам и на Qt пилил бы.
> насчет машины с кучей пользователей - хз где это может пригодится, у меня своя машина, что хочу то и творю или я не так понял?
Закинул ты малварь под отдельного юзера. До обычного клиента она не доберется. А тут получается, что любая малварь сможет постучать на 127.0.0.1:port и поменять настройки, запостить какую-нибудь хуиту и т.п. К тому же нужно думать про CSRF постоянно, чтобы веб-сайты не могли в твои настройки лезть.
>>13575 Если тебе не трудно, закодируй типичный нанопост (3-5 кб) в base64 и залей на pastebin. Хочется глянуть на сообщения. И такой ввопрос: зачем ты придумал свою кодировку? zlib жмет русский до 60%, можно было бы и православный UTF-8 применить ради кросс-платформенности. Лично я посоветую развивать оконный клиент, т.к. сам иногда пилю и предпочитаю не использовать браузер лишний раз.
>>13580 >Qt и C++ неплохой компромисс для кроссплатформенной гуевины. Может быть Python + Tk, но вендобляди не одобрят, наверное. Питон отлично собирается в .exe бинарник с помощью сборщиков. Размер бинарников около 12-14Мб т.к. он тащит интерпретатор, в то время как в среднем С++ и Qt получаются около 5-6Мб. Не так много на самом деле, учитывая характеристики современных ПК.
>>13580 Но почему надо отказываться от .NET? (на самом деле я использую Моно а не .Net и сижу под OS X). Если ты не "вендобл" то какая ОС тебя интересует? Под линуксом текущий клиент работает без проблем нужно только установить моно (sudo apt-get install mono например и всё). Некоторые проблемы есть при работе в OS X, главные из них - нельзя ввести прописную М (и многие другие прописные буквы) и общие тормоза (но с этим можно жить). Проблема с буквами легко фиксится (слушанием клавиатуры). Однако в конце концов сложно представить крипто(!)анона который сидит под OS X и наотрез отказывается поднять виртуалку с линуксом. А вообще честно говоря я просто не могу в кресты, питон (к нему особая претензия - к производительности) и Qt, а вникать не особо много времени и желания. Кроме того уверен, что с кодом на шарпе у меня найдется больше продолжателей в случае чего.
Я согласен что представленный мной клиент весьма уродлив и удобство оставляет желать лучшего. Также соглашусь что и шарп и моно и винформс - отвратительные куски говна. Но это работает, это может вдохновлять и это лучше чем просто мечты.
На крестах, питоне, чем-нибудь еще могу помочь написать библиотеку для конвертации текста в байты, имеющие кодировку нанопостов ну и считалку хеша для нанопостов. Всё остальное (гуй, способ обмена, поддержка базы нанопостов) может писать кто угодно на самых разных технологиях и при условии что кодировка и способ расчета хэша будет один и тот же - клиенты будут одинаково совместимыми.
За хтмл взялся чисто ради более приятного пользовательского интерфейса и вида постов который можно запросто наворотить на html+css.
вот исходник, здесь есть главные операции над текстом - преобразование в байты в нанокодировке и расчет хэша для нанопоста, который можно использовать чтобы ответить на пост: http://ideone.com/si12Rh
>>13580 >Может быть Python + Tk, но вендобляди не одобрят, наверное. Tcl + Tk они одобряют: выглядит нативно, установить требуется только activetcl. >Qt и C++ Заебется пилить.
>>13587 в связи с обновлением алгоритма добавил новый и, возможно (если не найдутся очень серьезные баги), последний релиз оконного клиента, дальше будут только релизы браузерной версии. вопросы безопасности упомянутые здесь постараюсь рассмотреть. как минимум дам предостережения пользователю.
>>13607 Вот сейчас проверил. Этот код http://ideone.com/si12Rh в юникоде занимает 5110 байт, ужатый gzip'ом - 1812, что примерно в 2.8 раза меньше. В однобайтовой кодировке тот же текст занимает 3683 байт, если же его ужать гзипом что, кстати, в наноборде не делается, то получается 1586 байт. Экономия на спичках, не иначе.
Ниже привожу основную инфу что сейчас есть по спецификациям наноборды. Для начала вкратце отпишу. По поводу нечитаемости языка, скажи какой язык для тебя читаем, я постараюсь накалякать на нём базовые методы (считалка хэша, кодировка). По поводу сжатия, этим можно (и стоит) заняться отдельно, не вмешиваясь в кодировку. Нанокодировка создана не только ради сжатия, сжатие тут играет далеко не главную роль. Плюс нанокодировки в том, что набор символов которые она кодирует не "бинарный" вообще и может быть скопирован-вставлен и даже переписан вручную на листочек. Об этом тоже ниже в деталях. По поводу json - лишние байты в трафике, лишние правила, отсюда риски cпоров и расхождений в реализациях. Нанопост хорош своим минимализмом, когда менять ничего не требуется и убирать тоже нечего. Это обеспечивает легкость создания совместимой реализации и дает некоторые другие профиты о которых ниже.
Нанопост — текст произвольного размера. Первые 32 символа в нанопосте обязаны быть шестандцатиричным текстовым представлением 16-байтного хэша. В противном случае нанопост считается невалидным, такое отсеивание поможет в борьбе с подбором коллизии. Этот хэш — хэш нанопоста, на который отвечает данный нанопост. Например: a3d6efb12ee82ca341dfdc90af1ace2b Сообщение нанопоста следует сразу после хэша без пробелов и переносов строки. Хотя максимальный размер всего нанопоста не регламентируется, клиенты могут его ограничивать при надобности. Еще раз подчеркну — нанопост это не байты, это обязательно читаемый текст, который можно без трудностей выписать чернилами на листик бумаги или зачитать по радио (экстремальные варианты распространения). Именно поэтому хэш выглядит так. Кроме того такой хэш удобно использовать как имя файла (что может быть использовано в некоторых реализациях). Хэш считается со всего нанопоста включая родительский хэш. Способ расчета хэша - преобразование нанопоста в байты с использованием нанокодировки, затем взятие SHA256 хэша с этих байтов (используются первые 16 байт SHA256). Полученные 16 байт преобразуются в текст. Символы строчные, нули вначале не обрезаются. Например 1 — 01, 254 — fe. В итоге должно получиться 32 символа от 0 до f или 16 групп по 2 символа от 00 до ff. Поскольку каждый нанопост отвечает на другой нанопост, то естественным образом формируются треды и выстраивается очередность сообщений без необходимости в, к слову, легко фальсифицируемых отметках времени или номерах постов. Нанокодировка — 8-битная кодировка включающая пробел, перенос строки, русские, английские, украинские и беларусские символы, стандартные знаки препинания, доступные для ввода со стандартной английской, русской, украинской и белорусской раскладок, а также некоторые “типографские” символы такие как тире и кавычки. Цель нанокодировки — уместить всё, необходимое жителям СНГ (и даже США) в 8 бит, избавиться от необходимости тянуть наследие терминалов 70-х годов, создать строгую, независимую базу для расчета хэшей, достичь простоты реализации (сразу ясно, что каждый символ займет ровно один байт) и добиться визуальной (и аудиальной) переносимости нанопоста, что было бы невозможно с utf-8 с его десятками вариантов пробелов, точек, скобок и прочего. Сжатие — не цель нанокодировки. На это есть другие инструменты. Наноконтейнер — ПНГ-картинка с зашифрованными нанопостами. Один из способов распространения нанопостов. Данные запихиваются в нижние биты компонентов (в порядке: R,G,B). Выше по треду есть ссылка на детальное описание алгоритма. В наноконтейнере тоже используется нанокодировка. По этой же причине там нет значений (например, целочисленных) в сырых байтах. Далее все размеры (в числах) записываются восемью символами от 0 до f. (32бит). Например 2 — 00000002. Первым в наноконтейнер идёт количество нанопостов (например 00000002 для двух постов). Далее на каждый нанопост идёт размер каждого нанопоста в символах/байтах (точно такой же нотацией). Далее идут по очереди содержимое нанопостов. Всё без каких-либо разделителей. Шифрование применяется к будущему содержимому наноконтейнера. Байты ксорятся SHA512 полученным с текстового ключа (байты ключа получены через нанокодировку). После этого записываются в пнг. При чтении пнг, вытащенные из нижних битов байты снова ксорятся тем же хэшом с того же ключа. Ретрансляция чужих постов крайне важна для удовлетворительной работы наноборды. Именно поэтому в пнг-контейнеры в моей реализации записываются частично самые свежие нанопосты и частично случайным образом отобранные старые нанопосты. Поскольку редкий пост без картинки займет 100Кб, будет слишком расточительно тратить целый пнг-контейнер на один нанопост (1-5Кб). Цель пнг-контейнеров — спрятать нанопосты от посторонних глаз, сделать обмен нанопостами малозаметным и сложно детектируемым. Пнг-контейнеры не предназначены для сжатия или для максимизации объема трафика наноборды (хотя они и стараются выполнить эту миссию). На данный момент корневым постом выбран пост: 00000000000000000000000000000000{Welcome to Nanoboard} А ключом шифрования наноконтейнеров — слово nano Текущий клиент ограничивает размер нанопоста до 16Кб. Встраивание картинок планируется через base64 datauri. Веб-версии обязательно должны заменять все > на > и так далее, оставлять только <img datauri (тщательно валидировать содержимое) и разметку типа <b><sup><i>. Учитывая возможность встраивания картинок максимальный размер стоит делать повыше, чем 16Кб.
>>13616 кстати, за питон сразу скажу там sha256 не вычислить без сторонних библиотек. не говоря уже от c++. и вряд ли там и там это будет более читаемо чем на шарпе. кое-как могу перенести на java
>>13615 >По поводу json - лишние байты в трафике Излишек мизерный. Со сжатием не превысит и 10% >лишние правила, отсюда риски cпоров и расхождений в реализациях. Наоборот, твой формат дает лишние правила с кучей неочевидностей. Например, ты хеш и размеры постов транслируешь в нанокодировку. К тому же, текущий формат слишком примитивен и не поддается расширению без ломания обратной совместимости, что уже большой минус. Ну и не юниксвейненько. Инструмент должен решать только одну проблему, а не все сразу по чуть-чуть. >Плюс нанокодировки в том, что набор символов которые она кодирует не "бинарный" вообще и может быть скопирован-вставлен и даже переписан вручную на листочек. Она именно и предполагает своё бинарное представление. Лишнее преобразование на пустом месте. А скопированы-вставлены или перенесены на листочек могут быть любые символы юникода, иначе их бы туда не добавляли. ☺
>>13619 >нанокодировка вообще фигурирует только при в расчете хэшей ну и в пнг-контейнерах Тогда какой в ней смысл? Получается, если я заполучу некоторые посты с "запрещенными" символами из текстового файла, то я не смогу их затолкать в пнг для последующего распространения.
>>13623 кстати пока писал питоновский код (писал в текстовом редакторе textedit маковском) обломался несколько раз при попытке запуска так как кавычки и апострофы редактор повставлял свои - похожие, но не те.
>>13624 Ну и какой в этом смысл? Захотел написать смайлик - получил вопросик, захотел математическую формулу - на тебе вопросик, захотел на языке двумерных тянок поговорить - хуй тебе с вопросиками. Она ещё и формат окончательно превращает в бинарный.
>>13621 не только размеры постов - а всю огромную строчку (где указано количество нанопостов, размеры нанопостов а дальше сами нанопосты) которая готовится к отправке в пнг-контейнер я кодирую нанокодировкой (надо же как-то перевести её в байты). почему не utf-8 я уже объяснял
по поводу json еще раз. нечего туда класть. и возможность расширить тоже не нужна. я видел попытки сделать json-based реализацию там были таймштампы вложения и прочее это уже слишком, это не нанопосты а мегапосты какие-то. про уязвимость таймштампов уже высказывался не раз. в общем нечего там расширять. надо людям обмениваться сообщениями по цепочкам и всё. единственное что не совсем вписывается в изначальную идею - картинки. есть два решения, которые не требуют изменений/расширений и ничего не ломают никакую обратную совместимость: 1) base64 типа datauri картинка, 2) ссылка на хэш картинки и передача картинки отдельным каналом.
>>13626 в случае крайней необходимости идею нанопостов с хешами и пнг-контейнерами в нанокодировке можно расширить тегом который позволит в base64 передать utf-8 строчку. не часто видел чтобы тут мат.формулами обменивались.
>>13627 >почему не utf-8 я уже объяснял Где? >надо же как-то перевести её в байты В сишарпе нет средств для работы со строкой как с байтовой последовательностью? Или что? Не понимаю, зачем плодить лишнюю сущность, которая, по твоим словам, фигурирует только при упаковке в пнг? И вообще, если по-хорошему, то формат должен быть один, но простым и универсальный, который можно как в чистом виде распространять, так и сжатый внутри какого-либо контейнера. Текущий бинарный пиздец с жесткой привязкой к позициям внутри файла простым и универсальным назвать трудно. Работать с таким без специализированных инструментов невозможно.
>>13627 для хтмл-бейсд решения любые символы юникода можно вводить вот так: 合 если прикинуть сколько на реальной борде среди постов попадается юникода (почти нихуя) то это вполне ок
>>13642 p2p - говно которое легко палится и может быть запрещено государствами
>>13629 utf-8 - проститутка в мире кодировок. пытается "дать" всем. и делон не только в языках. вот понадобилось кому-то несколько вариантов запятых - пожалуйста. а то что в большинстве шрифтов, аппликух будет поддерживаться только половина из этих запятых - похую. нахуя это всё говно тащить? ради смайликов или ЗАЛГО? ну пусть вводят 宠 те, кому это необходимо. имплементить поддержку утф-8 это геморрой - хуй проссышь сколько у тебя в итоге байт выйдет со строчки - 8, 12, 14? хуй знает надо конвертировать в байты, считать... а еще BOM заголовок ебучий то есть то нету. своя кодировка дает четкий и понятный ответ на вопрос каким байтом кодировать символ, сколько байтов займет строчка, будет ли это работать на других платформах и так далее. все четко. в 8 бит можно уместить дохера экстра-хероты типа смайликов параграфов кавычек и прочего. русский + английский в в капсе и без = 120 символов. +10 цифр = 130 символов. пунктуация вводимая с клавы это еще 32 символа. итого 162. +перенос строчки итого 163. остается 92 ебаных свободных места. под любую хуйню. попробуйте насобирать 92 символа которые вы якобы частенько используете при общении на бордах. смайлики? не не верю. ну допустим. что еще? у нас есть прекрасная возможность послать нахуй utf-8 и поиметь свою ламповую 8битную кодировку. так нет же давайте тянуть громоздкий утф и сжимать гзипом.
>>13645 А в чем именно сложность заключается?>>13648 >p2p - говно которое легко палится и может быть запрещено государствами Схуяли? Они запретят соединения между компами юзверей? лолшто?
Я предлагаю очень простую идею, как при подключении к "скрытой борде" искать пиры для обмена трафом... Короче суть такая: берем тупо какой-нить файл и раздаем его торрентом по DHT. Всем, кто хочет общаться в борде - кидаешь магнет ссылку на файл. По ссылке подхватываются ip адреса сидеров, раздающих этот файл. Эти сидеры и есть те, с кем ты будешь лампово общаться. Далее уже по своему протоколу конектишься к сидерам и двачуешь...
какие плюсы у данной концепции: - товарищ майор скачав по магнету файл нихуя не поймет. Ну файл и файл. В чем прикол? хз. Ну их нахуй; - не надо писать свою йоба-сложную систему поиска собеседников...; - при зашкваре магнета всегда можно залить новый файл и новую ссылку давать только тру-анонам.
>>13649 к этой хуйне еще надо как-то прикрутить шифрование, чтобы при запаленной магнет-ссылке новые майоры не могли читать месаги уже подключившихся ранее анонов... то есть надо сделать какой-то таймаут чтоли, после которого подключаться уже нельзя
>>13651 >>13649 ещё один большой плюс забыл добавить: - если майоры просекут тему, то забанить DHT будет политически рисковано, тк торренты перестанут по сути работать. Останутся только трекеры
>>13648 >нахуя это всё говно тащить? Ты уж определись: наноборду ты пишешь или отважно спасаешь мир от злого юникода. utf-8 - де-факто стандартная кодировка и ничего ты с этим не поделаешь. Технически твой велосипед ничуть не оправдан, а даже наоборот привносит свои проблемы. >ради смайликов или ЗАЛГО? В первую очередь ради совместимости. А ради чего нанокодировка? Ради чего пользователь должен получать бинарный блоб вместо текста? Ради чего он должен держать в голове тот факт, что не все введенные им символы пройдут цензуру деспота-разработчика? >утф-8 это геморрой - хуй проссышь сколько у тебя в итоге байт выйдет со строчки - 8, 12, 14? хуй знает надо конвертировать в байты, считать... В сишарпе нет средств для работы с утф-8? В 2015-то году? Да не пизди. Даже в тикиле, в этом маргинальном куске говна мамонта, с этим никаких проблем. >у нас есть прекрасная возможность послать нахуй utf-8 и поиметь свою ламповую 8битную кодировку Локаль уже для линукса запилил? А для шиндошса? Или ты хочешь использовать йобакодировку только для кодирования при упаковке в контейнер? Что ж за хуйня тогда получается? Пользователь вводит в юникоде, ты текст кодируешь, помещаешь в пнг, другой пользователь извлекает из пнг и декодирует обратно в юникод. Или, допустим, он захочет сохранить не в пнг, а текстом. Ты ему бинарный блоб в йобакодировке отдашь или опять в юникод? Как не крути, но путь поста с юникода начинается и им же заканчивается. А ведь ты что-то про наноминимализм кукарекал, а на деле бесполезные сущности плодишь.
>>13649 >Далее уже по своему протоколу конектишься к сидерам и двачуешь... Надеюсь, в нанопротоколе будет будет своя замена tcp/ip/ethernet? Не стоит же тянуть весь этот громоздкий стек шлюхопротоколов.
>>13642>>13651 Пилят уже p2p-интернет, в том числе и борду >>10340 (OP). Никаких принципиально неразрешимых проблем нет, просто нахуй никому не надо. >>13656 Вот этого двачую. Поскольку оказалось >>13609, что особой экономии нет, то и смысла в велосипеде не вижу.
И оп, дорогой, если ты хочешь, чтобы кто-то ещё пилил что-то совместимое с твоим ПО, сделай whitepaper со спецификацией. Я сейчас прочитал документ из оп-поста, тред, и не увидел никаких подробностей о контейнере, кроме >набор случайных постов со всей имеющейся базы в ПНГфайл (в нижние биты цвета, что незаметно для человеческого глаза)
>>13656 Как мне надоели эти толкатели утф... Вот не будет допустим у вас вообще никакой "наноборды", пока не сделаете правильную кодировку в системе. Что? Не получается? Только "стандартным утф" можете пользоваться, вопя чтоб под него всё сделали? Ну в общем перечитайте.
>>13656 >Ты уж определись: наноборду ты пишешь или отважно спасаешь мир от злого юникода. Да я не против юникода в мире в принципе. Но уверен, что его не стоит бездумно лепить повсюду только потому что "это стандартная кодировка". >Технически твой велосипед ничуть не оправдан, а даже наоборот привносит свои проблемы. Технически вполне оправдан - я уверен в том, что на каждый символ тратится ровно один байт а это упрощает реализацию. Проблем особых нет, 3 несчастных метода (toBytes, toString, calcHash) реюзаются везде вот и всё. >Ради чего пользователь должен получать бинарный блоб вместо текста? Да не получает он никакой блоб. Пользователь вообще этого всего не видит. >Ради чего он должен держать в голове тот факт, что не все введенные им символы пройдут цензуру деспота-разработчика? Редкий пользователь будет намеренно вводить символы юникода. Помню, кстати, случай с вылетающим то ли сафари то ли еще какой-то еботой для айфона если на веб-странице была определенная комбинация юникода. Просто бомба. Но и здесь для него можно подложить соломку: готовить конструкции вида Ӓ их потом даже специально парсить не придется если просмотрщик основан на html. >В сишарпе нет средств для работы с утф-8? Есть и я ими пользуюсь там, где это обосновано. В том числе и в клиенте наноборды дохрена где юзается utf-8. >другой пользователь извлекает из пнг и декодирует обратно в юникод. Именно так. Проблемс? >Или, допустим, он захочет сохранить не в пнг, а текстом. Ты ему бинарный блоб в йобакодировке отдашь или опять в юникод? Да как ему угодно. Можно юникод, можно бейс64, можно бинарник. >Как не крути, но путь поста с юникода начинается и им же заканчивается. Это не повод на всём пути держаться за юникод. Это все равно что привязать к поезду перрон. >А ведь ты что-то про наноминимализм кукарекал, а на деле бесполезные сущности плодишь. Сущностей - да, парочку новых появилось. Так ли уж лишних? Сомневаюсь. Также сомневаюсь и в том, что минимализм это когда ты базируешься на utf-8.
>>13649 одним из участников может быть товарищ майор. хуёво когда палятся все айпишники. настоятельно рекомендую наноборду с такими технологиями не связывать. откуда вообще пошло название наноборда. от нанотехнологий, а именно от нанороботов, встраиваемых в тело человека. так же и нанопосты. они встраиваются. пока хозяин одного из ресурсов сам не станет участником наноборды или ему кто-то не стуканет он не будет знать что его ресурс так используют. и в большинстве случаев ничего не сможет сделать (разве что подшумлять на стороне сервера все пнгшки). и тов майору все что может передать - айпишники с которых были залиты конкретные пнгшки. а внутри посты, написанные непонятно кем и когда. потому что все перемешивается и ретранслируется. и если айпишники, с которых были запощены это айпишники каких-то впнок, вдсок, проксей, торов и прочего то тов.майор обломается. а еще есть презумпция невиновости. человек мог постить скачанную откуда-то пнгшку и просто не знать что там наноконтейнер внутри. и, кстати, это БУДЕТ происходить. потому что никак не запретить никому репостить пнг с АИБ. ну допустим побанит хозяин ресурса участников наноборды или пнг им начнет херить. ну так у них еще десяток ресурсов в places.txt. похую. вот в этом сила наноборды. а закроют все АИБ во всех странах - останутся обычные форумы. а потом сделаем стеготекст и тогда вообще хуй кто что обнаружит. а p2p уже прижимают в западных странах.
>>13673 это всё понятно. Главная проблема твоей наноборды в пнгшках в другом - юзверей мало и они не будут знать как скооперироваться в день х. Поэтому я и предлагаю юзать уже имеющиеся DHT и torrent технологии. Суть простая - чтобы было просто найти друг друга, было скрыто от посторонних с помощью маскировки под обычный сервис типа torrent'а или skype`а... Чтобы майор думал, что это просто кто-то торрент качает или по скайпу пиздит
Как ты будешь искать своих единомышленников 1.5 анона на бескрайних просторах чебурашки? Маркеры какие-то надо оставить тогда, чтобы можно было через поисковик "спутник" найти )
>>13649 >А в чем именно сложность заключается?>>13648 >>p2p - говно которое легко палится и может быть запрещено государствами >Схуяли? Они запретят соединения между компами юзверей? лолшто?
>Я предлагаю очень простую идею, как при подключении к "скрытой борде" искать пиры для обмена трафом... >Короче суть такая: берем тупо какой-нить файл и раздаем его торрентом по DHT. Всем, кто хочет общаться в борде - кидаешь магнет ссылку на файл. По ссылке подхватываются ip адреса сидеров, раздающих этот файл. Эти сидеры и есть те, с кем ты будешь лампово общаться. Далее уже по своему протоколу конектишься к сидерам и двачуешь...
Было кстати. Был плагин для мюторрента (там в версии 4.0 было js api и движок ie, плагины - зип архив без сжатия с расширением то ли btplugin, то ли ещё каким-то) даже, и даже работал. Поищи в сети. Кстати, в bit-torrent протоколе есть bip про отзывы о раздачах, может их заюзать?
>>13667 Свои нанопротоколы, наноос уже начал пилить, велосипедист? >>13672 Упертый как осёл. >а это упрощает реализацию Что ты несешь? Как дополнительное преобразование может упростить его отсутствие? У меня сложилось ощущение, что ты просто не осилил свой сишарп, поэтому придумал свой костыльный способ преобразования символов в байты, а теперь выдумываешь для этого оправдания. >готовить конструкции вида Ӓ Зачем, блядь? Ещё один бессмысленный костыль. >если просмотрщик основан на html А если нет? Придется сначала парсить из йобакодировки, потом из йобаразметки. А для чего? А чтобы опять получить тот же утф, с которого всё и началось. >Также сомневаюсь и в том, что минимализм это когда ты базируешься на utf-8. Минимализм - это когда ты не плодишь лишних сущностей, а решаешь только одну поставленную задачи наиболее доступными средствами. А вот когда ты под видом минимализма начинаешь обвешивать свою поделку сущностями, без которых можно легко обойтись и которые к решаемой задаче совершенно не относятся - это уже долбоебизм. Не удивлюсь, если ты там начнешь выдумывать нанотулкит, наноос, наносжатие, нанокартинки, наножелезо, наноинтернет и т.д. Мой тебе совет: ознакомься с философией юникс. Почитай, подумай, переосмысли свой подход.
>>13680 нанокодировка отлично вписывается в философию юникс. ну ладно хуй с тобой перейду на utf-8, ты успокоишься или будешь требовать чтоб я тебе в пнг совал огромный джейсон?
>>13681 Не обязательно жсон, но текущий формат тоже необходимо сменить, т.к. бинарные форматы - зло. Я считаю, он должен быть простым и удобным для манипуляций без спец.инструментов. Можно что-нибудь вроде такого: sha256: hash somefield: somevalue - text
sha256: hash - text >нанокодировка отлично вписывается в философию юникс. Нет, не вписывается.
>>13666 Она не имеет никакого отношения ни какому торрент-клиенту, и уж тем более не является плагином. Ты же не будешь называть мотоцикл плагином к автомобилю только потому, что они ездят по одним и тем же дорогам и руководствуются примерно одними и теми же правилами? >>13667 >Ну в общем перечитайте. Перечитал твой пост раза три, ничего не понял. Застрял прямо на этом бредовом допущении: >не будет допустим у вас вообще никакой "наноборды", пока не сделаете правильную кодировку в системе >>13681 Ты лучше спецификацию опиши.
>>13682 не, вот только новые форматы тут не надо придумывать, чем мне разделять такие строчки, CRLF или CR? можно ли пробелы и допускать ли их между двоеточие? Нахуя изобретать велосипед если есть дежйсон? и почему это вдруг бинарный формат - зло? я же бинарно буду хранить любимый тобой утф-8.
>>13687 >не, вот только новые форматы тут не надо придумывать Вот этот подход уже лучше. Можно взять формат yaml или org-mode. Они содержат меньше синтаксического шума, чем жсон. >и почему это вдруг бинарный формат - зло? Если вкратце: такие данные неудобно обрабатывать, неудобно воспринимать. Текстовое же представление ещё со времен терминалов является одним из основных представлений информации. >я же бинарно буду хранить любимый тобой утф-8.
>>13688 чувак ты не хранишь текст, хочешь ты этого или нет но твой текст с символами юникода записывается в самые обычные байты и передавать ты тоже будешь самые обычные байты, а не абстрактный текст
>>13690 Идиотом-то не прикидывайся. Какая разница, как он хранится? На логическом уровне текст и бинарщина - разные вещи с разными интерфейсами. Ты лучше по делу говори.
>>13688 yaml - сразу нет, ни в каком языке поддержки нет, везде надо либу подбирать, да и выглядит ямл по-уродски, уж лучше джейсон.
>>13690 в наноконтейнер уходит ТЕКСТОВАЯ СТРОЧКА (она в нанокодировке, но это не делает результат более БИНАРНЫМ чем если бы была бы использована другая кодировка например utf-8) поксоренная sha-512 хэшом. после расшифровки это выглядит так: 000000020000001100000011Первое сообщение.Второе сообщение! напомню, это - строчка и 0 здесь - символ нуля.
>>13692 Формат бинарный в первую очередь не из-за нанокодировки, а четкой привяки к позициям в файле, которые задаются в заголовке. >000000020000001100000011Первое сообщение.Второе сообщение! Вот ЭТО трудно назвать текстовым форматом.
>>13692 >сконвертируй в джейсон Никаких "конвертируй". Ещё раз повторяю: формат должен быть только один, но простой (для чтения и редактирования человеком с помощью подручных средств), логичный и универсальный.
>>13695 на кой хой человеку редактировать содержимое пнг-контейнера и как ты себе это представляешь? я вот туда еще архивацию скоро херану. это содержимое нужно РАСПАКОВЫВАТЬ. я предоставляю код по распаковке, какие проблемы? а в какой формат преобразовывать распакованные данные для своих нужд это уже дело каждого имплементатора.
>>13692 >ни в каком языке поддержки нет, везде надо либу подбирать Охуеть какая причина. А JSON что, везде из коробки? Давай тогда на сях пиши только с C standard library, для остального же надо либу подбирать.
>>13693 здесь нет неотображаемых символов, потому и текстовый. тут не привязки к позициям а размеры. неужели такая сложная задача распарсить такой файл? 1) читаем количество постов, 2) читаем размеры постов (уже зная количество) и 3) читаем посты (по очереди зная размер каждого). количества/размеры - строчка от 00000000 до ffffffff, возможно количество бит даже излишне, тут хватило бы и 16битных чисел - 0000 до ffff повторяю, это пнг контейнер, его задача хранить и транспортировать данные. просматривать их будете после распаковки в том формате в который прочитаете.
>>13694 с чего предложишь считать хэш? с тайтла? с мессаги? со всего джейсон текста? с минифайд джейсон строчки? объект либо имеет тайтл либо имеет реплайТу?
короче пацаны не ебите мозг, не усложняйте себе жизнь и не бойтесь вы так "бинарного" формата
>>13696 >на кой хой человеку редактировать содержимое пнг-контейнера и как ты себе это представляешь? ПНГ - это просто контейнер. Непосредственного отношения к борде он вообще не имеет. Посты могут распространяться и в виде обычного архива, и храниться у пользователя в виде простых текстовых файлов. И вообще, читни про юникс-вей.
>>13696 >а в какой формат преобразовывать распакованные данные для своих нужд это уже дело каждого имплементатора. Да блядь, никаких "преобразовывать". Способ хранения не должен задавать формат содержимого.
>>13698 >тут не привязки к позициям а размеры. Есть. Добавь в начале пробел и нихуя не распарсится. >неужели такая сложная задача распарсить такой файл? Проблема в очевидности структуры и человекочитаемости. И то, и другое полностью отсутствует. >>13698 >с чего предложишь считать хэш? Вычисление хеша можно оставить так же: sha256(хеш родителя + тело сообщения). Если родителя нет, то использовать, например, 64 символа 0
>>13702 >Проблема в очевидности структуры и человекочитаемости. И то, и другое полностью отсутствует. зачем человеку видеть, как это хранится? всё будет делать прога на-лету
>>13702 нахуй человеку читать содержимое наноконтейнера? человек будет читать посты, которые для него любезно подготовит программа-клиент наноборды. насчет очевидности - кто сказал что все должно быть очевидно с первого взгляда на содержимое файла? почему ты к ПНГ или ЖПЕГУ не приебался, например? там же черт ногу сломит если на байты взглянуть. для этого есть спецификации. ты уж извини но 3 простых шага даже дебил перенести в код способен если владеет своим языком программирования хотя бы на базовом уровне.
>>13700 почему-то каждый читнувший про юникс-вей уверен, что никто больше этим не интересовался. хранить текстовые файлы - фейловая затея. так делают начинающие программисты, это плохо масштабируется. а вообще ты и >>13701 ты все сами сказали: не важно как там в пнг это всё хранится.
>>13704 base64 это по сути "разжимание" - нет смысла. 7зип нешвабодный.
>>13708 несложно насоздавать ЮНИКС ВЭЙ утилиты которые позволят распарсить базу нанопостов или пнг контейнер в любой формат и обратно.
Вообще я немного лоханулся, конечно, с кодировкой. Я думаю на этой доске все слышали про частотный анализ. Например, буквы ё и твёрдый знак в русском тексте почти не встречаются, а буква о - встречается в среднем через каждые 9 букв. 80 процентов русского текста это одни и те же 14 букв. На это хватит 4 (четырёх битов). Итак берем 14 маленьких самых частых букв (одна из них - не буква, а пробел - очень частый символ), а вот 1)15-е и 2)16-е значения (в 4-х битах - 16 значений) можно использовать как переключатели на 1) еще 16 символов (4мя битами) 2) полный байт (255 всевозможных символов, при этом 30 символов там можно опустить, потому что они у нас в первых двух группах. Получается, что 80 (на самом деле за счет запятых, точек, прописных - чуть меньше) процентов у нас кодируется 4-мя битами, процентов эдак 15 - 8ю битами и остальное - 12ю битами.
В СРЕДНЕМ 5 БИТ НА СИМВОЛ. В-СРЕДНЕМ-5 БИТНАЯ КОДИРОВКА. С 285 ВОЗМОЖНЫМИ СИМВОЛАМИ. ТОЛЬКО ПРЕДСТАВЬТЕ. А ЭТИ ПЕТУХИ ИЗ UTF-8 ПРЕДЛАГАЮТ НАМ КАЖДУЮ РОДНУЮ НАМ БУКОВКУ КОДИРОВАТЬ 16!!!!!! ШЕСТНАДЦАТЬЮ БИТАМИ! Но пойдем дальше. Для больших сообщений есть смысл в самом начале задать 30символов для первых двух наборов (14 и 16). Исходя из наиболее повторяющихся в этом конкретном сообщении букв.
>>13731 а теперь внимание: СЖИМАЮЩАЯ КОДИРОВКА - СУПЕРКОДИРОВКА берём словарь русских слов. кодировка по факту, 16-битная, имеется 65536 слов (с лихвой покрывает все наиболее употребимые слова), среди них 256 символов нанокодировки, потом те же 256 символов которые заменяют предпоследнюю букву в предыдущем слове а также 256 символов которые заменяют последнюю букву в предыдущем слове, а также символ-переключатель на 8-бит (в котором есть символ переключения обратно на словарь).
например слово ПОКРЫШКА utf-8: 16 байт суперкодировка: 2 байта
слово ПОКРЫШКАМИ utf-8: 18 байт суперкодировка: 6 байт
слово ПОКРЫШЕК utf-8: 16 байт суперкодировка: 6 байт
Как видим некоторые слова могут занимать в 2.5 раза меньше места, а некоторые в 8 раз!
>>13734 есть еще неплохой вариант - около 8 символов которые удаляют от 1 до 8 последних букв из слова. это чтобы не тратить по 768 символов на замену последних букв.
>>13734 Как интересно! А давай попробуем этой фразе: "Один японец мне сказал '私はあなたのお母さんをファック。'. Что-нибудь знает, что это значит?" В utf-8 - 152 байта.
>>13741 а не пошел бы ты, как я должен читать японский текст и нахрена он мне тут на РУССКОЙ борде? ты что аниме(гомосексуалист)? но если уж приспичит - одним из слов в словаре может быть слово-переключатель на utf-8 (да да можно смело пользовать шлюшку-utf-8). далее следует байт количества юникод символов. а вот один - 2б японец - 2б мне - 2б сказал - 6б что-нибудь - 2б знает - 6б что - 2б это - 2б значит - 2б = 24 байта + переключатель = 27 байт + юникод навскидку 40 байт + 18 байт пробелы = итого 85 байт против твоих 152х но повторюсь никто не станет использовать японские буквы повсеместно
кстати взгляните на историю юникода это же смех смехом. удалили тибетский язык, вернули тибетский язык... идиоты. что от них дальше ожидать? а нам, русским людям вместо тибетского языка и прочего откровенного ХЛАМА включая твой, аниме японский благоразумнее хранить целые русские слова
для наноборды это имеет огромное значение. это значит что я в стеготексте в каких-нибудь считанных байтах могу записать целых пять слов. например:
друзья предлагаю прекратить пребывание здесь = 2+6+2+2+2=14байт или 112бит мы уже считали что понадобится около 280 букв русского текста чтобы спрятать эти 112 бит. и в них - 46 букв! это небывалая плотность. всего в 6 буквах обычного текста - 1 буква стеготекста! (имеется в виду метод подстановки латинских символов аеросух <-> aepocyx, в методе четных-нечетных количеств символов меджу пробелами плотность будет в три раза ниже.
>>13743 >нам, русским людям Очередной русский человек пытается в корне ограничить применение разработки исключительно русскоговорящими. Сажа тупому дискачу.
>>13728 >7зип нешвабодный. какая разница? мы в самой пиратской стране мира живём и эта наноборда будет непопулярна среди быдла, так что на авторские права можно смело забить. Главное - эффективность и удобность и скрытность от майора за счет маскировки интернет активности наноборды под под какой-нить известный торрент или скайп
1. Вчера я проебался пол-дня на имплементацию твоей кодировки на питоне, доделал только декодирование. Если бы ты использовал zlib и utf, проблемы бы не было но ты всё усложнил. 2. http://pastebin.com/BkeUbZDQ декодирует твое тестовое сообщение, до кодировки не добрался. 3. В твоей кодировке capital Z with acute встречается два лишних раза. Фейл. 4. Твой питонокод не работает, твоё тестовое сообщение он не распознал и выдал 3f3f3f3f3f3f3...3f3f3 5. Ты кодируешь дайджест сообщения дважды - сначал в hex, потом в наноэнкодинг, в то время как можно сделать 'dc804e6059f5adcaa476fbe5a8d571dc'.decode('hex') и получить бинарь сразу.
На данный момент я предлагаю такой формат: (кол-во сообщений, размер 0000-ffff) + (размер сообщения №1 00000000-ffffffff) + (размер сообщения №2 00000000-ffffffff) + (SHA256-дайджест(тело первого сообщения) + (SHA256-дайджест(тело второго сообщения) Тело - сжатый zlib'ом ютф. А внутри там что угодно, хоть Маяковский лесенками, хоть json, это уже вопрос просмотрщика/клиента.
Идея ксорить циклично хэшем не очень - у тебя первые 10-15 байт где размеры едва ли меняются, поэтому вычислить гамму не составит труда. Жобавь хотя бы ARC4.
>>13758 на написать краткую концепцию и изобразить структуру классов... Потом уже можно кодерам-кунам раздать по одному модудю/классу и совместными усилиями написать за пару недель
Кратко: ◘децентрализованность ◘маскировка от майора под известный сервис (skype, torrent etc), чтобы блокировка вела к анальной боли хомячков-пользователей популярного быдло-сервиса ◘шифрование ◘анонимность
>>13764 Уже есть DDT, с нормальным стегом, возможностью подписывать сообщения, еще куча всего. Единственный значимый минус - это юзерскрипт, что опасно.
>>13767 делать пакеты похожими на траф от торрента... Майор будет думать, что аноны качают торрент, что не запрещено... а по факту там замаскированные сообщения между анонами, которые анон прозрачно на-лету видит в виде обычной борды
>>13769 короче концепция такая... если майор захочет тоже качнуть этот "торрент", то у него просто скачается файл с раздачи... короче надо сделать свой торрент клиент двойного назначения
Просто если мы сделаем что-то новое аля i2p или tor, то его тупо заблочат провы по указке майора и никто не пикнет. А если мы сделаем маскировку под торрент таким образом, чтобы нельзя было определить, обычный клиент у анона или же модифицированный, то у майора не останется выбора кроме как заблочить весь протокол в принципе, а это вызовет бурю возмущения у бадло-населения. Как итог - майор не будет блочить или же получит митинги
>>13782 Пока еще есть куча трекеров, вот когда начнуть все анально банить, то уже о чем-то можно будет говорить. Пока средства обхода банов не запретят, думаю сложно будет раскачать.
"Ну я бы вводил тогда три типа сущностей: разделы, темы, сообщения. Соответственно, привязал бы темы к разделам, сообщения к темам. Таким образом, можно отправлять запросы на поиск каждой сущности. Запрос на добавление сообщения к теме обрабатывается узлами, хранящими ее (они просто дополняют список сообщений внутри себя). Модерировать тему имеет право только создатель, как я думаю. Идентифицировать его можно с помощью публичного ключа. "
>>13788 "Правильно понимаю, что каждое сообщение имеет указатель на «родителя-тему»? Т.е. поиск по хешу, как если бы искали торрент в DHT? Не будет ли слишком накладно искать таким способом? Обычный торрент однозначно идентифицируется по хэшу: хэш = содержимое, а здесь придется добавлять какой-то список, и каким-то образом передавать его в запросе, чтобы в ответ не присылали те сообщения, которые уже у вас есть. Самый простой был бы вариант со счетчиком, просто сообщать максимальный номер сообщения, который у вас есть. Посколько сообщения появляются по очереди, то это хороший вариант. Но есть проблема: два пользователя одновременно могут создать сообщения с одинаковым номером думая, что дают максимальное значение. Да еще хотелось бы передавать сообщения при создании (получении), а не получать послав запрос, т.е. сократив два движения в одно. Поиск по тегам вещь безусловная нужная, но без нее получается достаточно изолированная и «секретная» система: не зная хэш не найдешь тему. Это хорошая защита от спама. Модерировать можно просто: каждый может отключить отображение сообщений от определенного пользователя (можно даже передавать специальное сообщение "-1" для пользователя, чтобы был общий рейтинг и новоподключившиеся могли бы оценивать собеседников сразу, однако это ведет к злоупотреблениям — хабр тому пример; ) Набросков нет, никак не могу продумать эту систему. Я не уверен, что понял правильно, но кажется вы предлагаете синхронизировать тему через «держателя», обычно пользователя, который начал разговор? У вас список «узлов, хранящие тему» это все участники? Проблема как идентифицировать сообщения, чтобы у всех участников они были одинаковыми, чтобы запрашивать только недостающие сообщения. Хэш не подходит, придется отсылать большой список того, что у вас уже есть. Порядковый номер не подходит, потому что может сбоить, если два клиента будут иметь разные максимальные номера (не до конца скачали), либо просто отправят сообщение одновременно. Может быть подойдет временная метка (точно покажет последовательность), но нужна синхронизация времени, которая не факт что проще, чем синхронизация количества сообщений в теме. "
>>13788 наноборда хороша тем что там пользователям решать считать ли им что-либо разделом, тредом или просто "сообщением", а не разработчику. иногда естественным образом некое сообщение в треде вызывает резонанс и обрастает ответами. по сути создается новый тред. в наноборде для этого не нужно прикладывать никаких дополнительных усилий
"как я вижу работу своего варианта: Я захожу, вижу список разделов… Ищу тему «куплю пылесос», у меня считается хэш этой фразы. Мне присылается тема/несколько, удовлетворяющих поиску, я выбираю нужную, подтягиваются сообщения из нее. Я постю ответ, при этом мое сообщение не остается у меня, а уходит на узел/узлы, ответственные за его хэш, я могу также определить теги для этого сообщения, если вдруг кто захочет искать по сообщениям, далее сообщение также регистрируется в теме (информация о его хэше). "
>>13790 счетчик хуйня, думали уже. доверять юзерам нельзя вообще в плане нумерации или таймстампов. запросы тоже хуйня вполне разумно хранить у каждого полную копию всей базы нанопостов (с возможностью очистки оче древних если места мало). к тому же запросы это привязка к конкретной технологии. каждый пост должен быть независимой единицей и уметь передаваться любыми способами. дальше у тебя модерация по отключению пользователя а это уже нарушение анонимности. короче прекрати нести бред
>>13787 Ладно, давай подождём. http://www.interfax.ru/russia/486250 Мне не западло будет через полгода напомнить. >>13788>>13790 >три типа сущностей: разделы, темы, сообщения >Модерировать >сообщение "-1" для пользователя >временная метка Наноборда такая НАНО.
>>13795 да не слушай ты этого хуйлобана. наноборда будет жить. >>13754 бля ну прости я не думал что на питоне будут траблы. по кодировке да, фейл. там еще места лишнего осталось можно сказтаь не утверждены всякие акьюты еще. мне вот очень нравится идея со словарём. по поводу хэша я намеренно его в байты не перевожу. намеренно строчкой хэкс. чтобы нанопост можно было бы ручкой на бумагу переписать. это как правило большого пальца хранить хэши тела сообщений это как то не меет смысла хеши с сообщения ммы всегда вычислить сможем. надо хранить хэши сообщения на которое мы отвечаем в своем сообщении. по поводу гаммы хуяммы. надо мусора добавить вначале прост.
>>13796 >наноборда будет жить. Не раньше, чем ты запилишь спецификацию, чтобы остальные могли писать на её базе код. Ты так упорно игнорируешь эту рекомендацию, что я уже сомневаюсь.
>>13798 бля братан я вообще не понимаю нахуя вам писать код если я пишу код? ты не воспринимай это как отказ писать спеку я напишу не вопрос. тут проблема есть в том что я перехожу на другую кодировку сейчас (суперсжатие, Сила Русского Слова - еще не решил как назвать). поэтому вам стоит подождать буквально пару дней еще. чтобы потом вам не было обидно что я вдруг всё поменял
>>13800 веб-интерфейс у меня почти готов загляни в репозиторий в ветку web-interface новая кодировка (основанная на русском словаре) тоже практически готова скоро выпущу обновление
вот например строчка: "принимать заголовками" в utf8 41 байт в моей новой кодировке - 4 байта
Это реально то что я вижу? Он хочет ограничить использование наноборды только русскоговорящим? А если кто-то захочет поделиться куском кода? >инт маин() {} Так что-ли? Нанокодер, не дуркуй. Жертва не стоит того. Можно придумать другие способы сжатия, например gzip.
>>13812 да не, ты меня неправильно понял, английский никуда не девается. хочу сделать сжатие для русского текста по словарю самых частых слов и окончаний, английский у меня сжиматься не будет просто
>>13810 да что ты все спермо спермо. моно - свободный проект. ну придумал майкрософт язык и виртуальную машину, ничем не хуже джавы как по мне. про пнг описано же, вот ссылка есть:
>>13819 Ну и нафига нужна виртуальная машина для такой небольшой и простой софтины, почему не написать на с/с++, который можно скомпилить хоть для чайника? Вот я не могу сейчас просто взять и собрать наноборду, потому что мне для этого нужно ставить mono с кучей зависимостей, а у меня медленный мобильный интернет.
>>13822 браток, если у тебя моно скачать (там не так уж и много) инет медленный то парсить пнгшки ты тоже как бы обломишься. на с/с++ могут быть очень жестокие баги да и плеваться все будут еще больше чем от шарпа.
>>13829 Молодец. Я как раз посмотрел http://blog.andersen.im/2014/11/hiding-your-bits-in-the-bytes/ 180 Кб в картинке размером 800x600. 480x360 — 64 Кб. Даже в худшем случае, если хуярить туда юникод с супер-экзотическими символами по 6 байт каждый, получится 10000 символов на картинку минимального размера. А на деле в 1024x768 влезет 150000 символов стандартного несжатого юникода по 2 байта, а с Deflate и все 300000.
>>13829 Грядёт релиз наноклиента в виде локального веб-сервера. Интерфейс - на html+css+js. Поддержка разметки и даже картинок (в виде [img=DNMNFJDHJFH...(base64)...]. Прямо на сайте - конвертер картинки из файла в готовый для вставки в сообщение тег с base64. А также с сайта вызывается сборка PNG контейнера и поиск наноконтейнеров по АИБ.
utf-8, шифрование, попробую также внедрить архивацию чтоб больше влазило и сложнее было расшифровывать
будет ли это Русская Сжимающая Кодировка неизвестно. скорее всего просто какой нибудь зип
>>13842 >Криптоплатформа RetroShare относится к классу darknet-сетей, топология которых подразумевает осуществление соединений и обмен данными лишь с доверенными участниками сети и исключает как внешние контакты, так и непосредственные контакты с другими участниками, не являющимися доверенными. IP-адреса участников криптосети недоступны друг другу, за исключением ограниченного круга доверенных участников — друзей ясно понятно
>>13799 >Сила Русского Слова - еще не решил как назвать За Россиюшку! Ухнем! Предлагаю назвать "Глаголица". >>13796 >по поводу хэша я намеренно его в байты не перевожу. намеренно строчкой хэкс. чтобы нанопост можно было бы ручкой на бумагу переписать. это как правило большого пальца Это бессмыслено, потому что без компьютера, стегодекодера и нанодекодирования пост не достать. А если ты и так программой будешь пользоваться, то и хеш она из бинарного может преобразовать. К тому же хекс не самая читаемая кодировка. Есть base32 и base58, они представь себе, сделают хэш короче вдвое. >надо хранить хэши сообщения на которое мы отвечаем в своем сообщении. Вот это ты по-русски ообъяснил, теперь понял. >по поводу гаммы хуяммы. надо мусора добавить вначале прост. Не выйдет, потому что у тебя всё циклично и байты дальше по шифротексту точно также будут повторяться от сообщения к сообщению. Не будет лавинообразного эффекта. Вот хороший шифр: https://github.com/LogosBible/Logos.Utility/blob/master/src/Logos.Utility/Security/Cryptography/Salsa20.cs
>>13949 в общем определенно есть смысл сжимать utf-8 (сжимается в 3 раза)
если сжимать нанокодировку со словарём (64к русских популярнейших слов) - сжатие уже в 4 раза но есть минусы - сложность реализации, в нанокодировке не весь utf-8 поддерживается, словарь устаревает с каждым годом, а обновлять его сохраняя обратную совместимость - накладно
однако подобный словарь все же может пригодиться если нужно реально ОЧЕНЬ сильно сжимать тексты (для распространения коротких "телеграмм" в стеготекстах). но тогда я бы предложил 12-битную систему: 12-бит кодируют одно из 4095 самых популярных слов или 2 буквы из 64-символьной кодировки (одно слово-переключатель на буквы и обратно). по данным одного исследования всего лишь 4000 популярных слов покрывают 80 русских текстов. но к этому вернёмся позже.
>>13980 wget http://2ch.hk/ стало выдавать 403 ошибку спуфать браузер строчкой юзер агента уже не выходит, реферер тоже не помогает. парочка других аиб - норм. кто сможет обойти - сигнальте. на m2-ch.ru пока всё ок. случайность или Абу постарался?
ДОЛГОЖДАННЫЙ РЕЛИЗ: Веб-интерфейс к НанобордеАноним26/12/15 Суб 04:29:43#258№13984
по спекам позже распишу, вкратце - сейчас utf-8, никакой нанокодировки, сжатие GZip, шифрование простейшее SHA-512, шифруются уже сжатые байты, запихивается в пнг как описано выше по функциональности - нажмете искать посты, надеюсь сработает я тут небольшой нанотредик создал. всем добра
>>14000 Причём тут шифрования? Тот чувак сказал что он шифрует с помощью хеш-функции. Я вообще не понимаю, как с помошью sha512 можно что-то зашифровать, это же хеш-функция, а не алгоритм шифрования.
>>14005 берешь sha512 от пароля наноборды и XOR-ишь им нанопосты вполне достаточно для наноборды (имхо). вообще главная уязвимость тут не способ шифрования а знание пароля многими участниками, среди которых найдется тот, кто сольет пароль наружу
короче не стоит забывать о том, что наноборда это не гарантия анонимности. несмотря на то, что почти невозможно доказать, что конкретный нанопост написали изначально именно вы, легко однако можно доказать что конкретные 1000 нанопостов были отправлены с вашего ай-пи адреса. (и пофиг что эти же 1000 постов были отправлены и с других адресов). короче та же проблема что и с айтупи/тором. следственные действия несколько усложнятся необходимостью наладить сотрудничество с админом АИБ на которой происходило паразитирование. так что с умом юзайте впн и будет вам счастье.
а вообще вы же не собираетесь на наноборде как-то "незаконно" общаться ведь правда? а если кто-то что-то незаконное запостит - вы можете нажать кнопку минус и в ваш пнг-контейнер этот пост никогда не попадёт. главный профит наноборды не в том что вас нельзя засечь общающимся на ней. что вы, вполне можно (не запросто, конечно). кстати чтение наноборды вообще практически беспалевное. особенно если качаете пнгшки руками из браузера. профит в том, что нанобордой никто не владеет. что никто вас не забанит на наноборде. и что никто не закроет наноборду. никогда. наноборда будет как кислота въедаться в интернет. [/pafos]
может стоит создать отдельный тред? где будем пиарить помимо этой доски/борды? как и где будем паразитировать? предлагаю иметь отличительный знак как куклота например. стать фанатами какой-то актрисы или певицы
Я так понял, сама прога генерит черные квараты с сообщениями, ты закидываешь их куда угодно и кидаешь ссылку всем кто по твоему должен прочитать это сообщение
Ну епти, ребята, ничего нового же. Зачем мне постить сраные картинки если я могу запостить зашифрованное сообщение а ключ взять из папки key.txt ОП твоя идея говно внутри обернутое конфеткой
нужно больше пнгшек с Кристен Стюарт, 5 штук - мало, много повторений. предлагаю собрать пак и выложить куда-то сделаем ее маскотом Наноборды, люди уже нас запомнили так
>>14035 объясню зачем. твое сообщение попадёт сюда один раз. явно будет видно что это какой то шифр (бейс64 да?)
пнгконтейнер содержит сотни постов. сотни. это сильно повышает надежность "трафика" наноборды, потому как твой один пост может потеряться, а нанопост не потеряется если его скачал хотя бы один участник и этот один участник что-то еще куда-то запостил. короче за счет ретрансляции наноборда+пнгконтейнеры обыгрывают твой вариант с постингом зашифрованного сообщения. добавь еще организацию - в наноборде все организовывается в треды/ответы.
>>14043 для тебя еще 2 варианта могу предложить - ставить айпи 0.0.0.0 (откроется по 127.0.0.1 или по твоему внешнему айпи) короче сейчас сделаю релиз с возможностью задать айпи через файлик
>>14062 [code]#################################################################################################### http://m2-ch.ruapple-touch-icon.png Error: NameResolutionFailure Access to the path 'download\/' is denied. System.ArgumentOutOfRangeException: Argument is out of range. Parameter name: inputOffset at Logos.Utility.Security.Cryptography.Salsa20+Salsa20CryptoTransform.TransformBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, System.Byte[] outputBuffer, Int32 outputOffset) [0x00000] in <filename unknown>:0 at Logos.Utility.Security.Cryptography.Salsa20+Salsa20CryptoTransform.TransformFinalBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) [0x00000] in <filename unknown>:0 at nboard.ByteEncryptionUtil.DecryptSalsa20 (System.Byte[] input, System.String key) [0x00000] in <filename unknown>:0 at nboard.PngStegoUtil.ReadHiddenBytesFromPng (System.String imageFileName) [0x00000] in <filename unknown>:0 at nboard.PngMailer.ReadInbox (nboard.NanoDB to) [0x00000] in <filename unknown>:0 System.IndexOutOfRangeException: Array index is out of range. at nboard.PngStegoUtil.DecodeBytes (System.Byte[] innocuousLookingData, Int32 byteIndex, Int32 byteCount) [0x00000] in <filename unknown>:0 at nboard.PngStegoUtil.ReadHiddenBytesFromPng (System.String imageFileName) [0x00000] in <filename unknown>:0 at nboard.PngMailer.ReadInbox (nboard.NanoDB to) [0x00000] in <filename unknown>:0 System.ArgumentOutOfRangeException: Argument is out of range. Parameter name: inputOffset at Logos.Utility.Security.Cryptography.Salsa20+Salsa20CryptoTransform.TransformBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, System.Byte[] outputBuffer, Int32 outputOffset) [0x00000] in <filename unknown>:0 at Logos.Utility.Security.Cryptography.Salsa20+Salsa20CryptoTransform.TransformFinalBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) [0x00000] in <filename unknown>:0 at nboard.ByteEncryptionUtil.DecryptSalsa20 (System.Byte[] input, System.String key) [0x00000] in <filename unknown>:0 at nboard.PngStegoUtil.ReadHiddenBytesFromPng (System.String imageFileName) [0x00000] in <filename unknown>:0 at nboard.PngMailer.ReadInbox (nboard.NanoDB to) [0x00000] in <filename unknown>:0 System.OverflowException: Number overflow. at (wrapper alloc) object:AllocVector (intptr,intptr) at nboard.PngStegoUtil.DecodeBytes (System.Byte[] innocuousLookingData, Int32 byteIndex, Int32 byteCount) [0x00000] in <filename unknown>:0 at nboard.PngStegoUtil.ReadHiddenBytesFromPng (System.String imageFileName) [0x00000] in <filename unknown>:0 at nboard.PngMailer.ReadInbox (nboard.NanoDB to) [0x00000] in <filename unknown>:0 System.OverflowException: Number overflow. at (wrapper alloc) object:AllocVector (intptr,intptr) at nboard.PngStegoUtil.DecodeBytes (System.Byte[] innocuousLookingData, Int32 byteIndex, Int32 byteCount) [0x00000] in <filename unknown>:0 at nboard.PngStegoUtil.ReadHiddenBytesFromPng (System.String imageFileName) [0x00000] in <filename unknown>:0 at nboard.PngMailer.ReadInbox (nboard.NanoDB to) [0x00000] in <filename unknown>:0 [/code]
так-так, удалось таки понять почему вылетает при поиске постов. пнг скачалось но доступ получить не удается - файл используется другим процессом. такое только на винде. скоро будет фикс.
>>14075 >>14080 >>14086 тут одно из двух либо ты вводишь 127.0.0.1 в ip.txt и это рабоатет либо ты вводишь 0.0.0.0 и биндится хрен знает какой адрес - это может быть твой внешний айпи, а может быть 192.168.0.1 может еще какая комбинация 192.168 в любом случае это все настраивается на уровне системы. я погуглю еще как это делать сообщу о находках, но со стороны программы тут уже ничего не сделать.
>>14085 для того и попросил потестить чтобы нашлись ошибки и было бы уже не так сыро. я тоже думал что вот напишу, все будет заебись но уже несколько критичных багов пофиксил. все у кого был вылет при поиске или после поиска постов, здесь фикс: https://github.com/nanoboard/nanoboard/releases/tag/v1.0.4
>>14087 сервер готовился чисто для нужд веб-интерфейса и он их покрывает, это не какое-то там апи для других приложений. какой метод тебе понадобился?
>>14075 ключ - пока нет причины менять места обитания - пока не договорились
есть 2 варианта как уже писалось: с опознавательным знаком (правильней будет сказать паком) и без.
если видите тред где постят пнг-шки с Кристен Стюарт то с высокой долей вероятностью там обитают нанобордисты и можно попробовать адрес этого треда добавить в places.txt
ну и есть еще вариант что places.txt будет просто обновляться от релиза к релизу на гитхабе однако это разумно только на первых порах дальше эти адреса нужно стараться держать в секрете. на гитхабе то нас пока никто не может удалить
>>14097 что текст? куда текст? на АИБ постить зашфированный текст? стеготекст? это конечно хорошо но это очень малые объемы пнг-контейнер очень вместительный одной пнгшки хватает на сотни постов, это обеспечивает хорошую ретрансляцию. если основываться на тексте то много постов будут теряться, а про картинки (на которые даже сейчас есть ограничения) вообще можно будет забыть.
НО
наноборда может одновременно работать на нескольких "протоколах". пнг-контейнеры параллельно с чем-нибудь еще - хоть тот же "текст" - да запросто
>>14098 Вот у меня вопрос. Взяли мы картинку, 10х10, всего 100 байт, то есть мы можем закодировать 100 байт. Например какой-нибудь текст. Получим новую, почти не отличимую картинку, но вот скачаю я эту картинку. Ка мне ее расшифровать. Ведь мне нужно иметь оригинал. Прав ли я?
>>14089 >сервер готовился чисто для нужд веб-интерфейса И он их не покрывает. Нахуя было велосипедить? Багов больше захотелось? Или просто NIH проснулся? Насколько мне известно, вместе с моно поставляется какой-то свой готовый, отлаженный. >какой метод тебе понадобился? На обычном GET сломалось.
>>14105 А тащить потенциальные дыры в безопасности в твоем вкусе? Ишь, готовое ему не понравилось. Твой уровень быдлокодерства не перестает меня удивлять.
>>14108 да какие тут могут быть дыры, локальный сервак по крайней мере все под контролем и на виду а не спрятано в чьей-то готовой реализации curl ты так и не прислал
код не идеален но если будем все время ждать идеально вылизанного кода то и до Апокалипсиса ничего не зарелизится. нужно прототипировать и давать пользователям на пробу. ты сейчас рассуждаешь не как пользователь а как член моей команды по разработке. для меня и пользователя важно чтобы был некий рабочий продукт и чтобы он был сейчас а не возможно когда-то в будущем. не так уж и нужен идеал без единого бага с алмазной архитектурой. платил бы ты мне деньги был бы другой разговор, а так я в свое личное время могу делать свою наноборду так как мне приятно и интересно. интересно стало хттп сервак написать - написал. мне вот интересно было свою кодировку сделать не знаю следил ли ты за тредом. люди очень возмущались и приводили свои аргументы. ну я сделал выводы и учел в коде их пожелания по поводу кодировки, да и поводу метода шифрования. потому что я вижу что это реально имеет значение. а вот насчет сервака или базы данных - нет, не считаю что это играет принципальную роль. это уже чисто сфера моей имплементации наноборды, здесь каждый может потом сыграть по-своему. вот такая вот философия быдлокода.
Jabberx,предлагаю идею с реагированием на ключевые слова. Допустим,в б харкача вы будете создавать свои тредики. Вместо того,чтобы добавлять их вручную,сделать автодобавление по ключевым словам,ну и доп.настройки типа коэфыицента картинок к постам(типа если в треде на каждый второй пост есть картинка,то коэффициент равен 0.5, и по настройкам он будет сканироваться)
ОП, а почему бы не постить вконтаче на стеночке. Причем делать это так, чтобы записи на твоей стенке видели только твои друзья. То есть ты сможешь выбирать кому показывать свой пост. Тогда борда станет псевдоанонимной и впитается вконтач и еще каждый сможет выбирать какие сообщения ему видеть добавляя в друзья того или иного человека
>>14116 выбирать надо относительно медленные тематические доски (или медленные борды), чтобы не смывало сразу треды. б - не катит (но б катит просто для пиара). надо ценить работу нанобордистов которую они проводят выкладывая контейнеры и меняя настроечки.
насчет ключевых слов - можно пытаться как-то по тексту намекнуть на Кристен Стюарт, Беллу Свон, вампиров, Сумерки или что-то типа того. для особо деревянных можно поаватаркофажить её фоточками. в целом же необязательно постить именно пнгшки с фотками Кристен Стюарт, она должна стать лишь катализатором.
вконтач - ну если бы там можно было бы регистрироваться без привязки к телефону то еще ладно, создал фейк и пользуешься. идея с друзьями-стеночкой гнилая, это уже слишком далеко от наноборды. а вот в группе открыть стенку и позволить всем туда постить пнгшки - это да, норм.
сперва нам аудиторию надо набрать приличную и начать проще с борд (хотя бы потому что ни с чем другим nboard пока не работает)
>>14125 не считаю /b/ харкача хорошим местом для пнг-контейнеров выше описал почему
в принципе полезно будет сделать кроулер по любой выбранной борде вообще по всем доскам и тредам (с ограничением по глубине). прогон будет долгим, хорошо бы чтобы он потом формировал отчет о том в каких тредах были найдены валидные контейнеры, чтобы потом настроиться чисто на эти треды.
все это можно сделать отдельно от моего клиента любым человеком (благословляю вас на это). все что нужно - помещать скачанные пнгшки в папку download при включенном серваке. сервак разберется где контейнер а где нет (папку download будет очищать в любом случае). это может быть вообще какой-то скриптик на основе wget (2ч.хк заменяйте на м2-ч.ру - клаудфлара мешает качать чем попало)
>>14126 ну разве что инфа о том какой контейнер валидный - мой сервак не даст (однако в логах можно глянуть имена пнг файлов которые не являются контейнерами - там будут эксепшены)
>>14124 >>14124 Так получается что контейнеры эти нужно засылать в ту же группу минут на 5, пока остальные не скачают, а дальше они могут быть удалены так как есть у каждого, кто скачал их в данный момент
>>14136 с переходом в тред все ок - так задумано (чтобы когда ты видишь новое сообщение и хочешь понять его контекст то есть увидеть на что это сообщение отвечает - ты нажимаешь "в тред" и видишь на что ответил автор нового сообщения). страница общих тредов это тоже тред. и любое сообщение на которое ответили становится тредом тоже. короче когда ты во /fresh видишь кнопку "в тред" то это значит "перейти в тред этого поста". а тред у поста который является ответом в корневой тред является корневой тред. именно поэтому ты переходишь в корневой тред (оно главная страница). как-то так. веб-интерфейс не представляет ссылки на "ответы" поста без ответов. ты ведь такую ссылку хочешь? это, конечно, можно сделать но зачем тебе смотреть на страничку где есть только одно сообщение? если нужно кому-то кинуть ссылку вида http://127.0.0.1:7345/thread/7d686657d1b51b3ebb27c7dc73b2f1f5 до того как там появился ответ у тебя 2 варианта: 1) ответить 2) нажать ответить но не отвечать а слово reply в адресной строке заменить на слово thread
еще раз подытожу: кнопка "в тред" вовсе не кидает на страницу общих тредов, она кидает на "уровень выше", уровень выше для поста который был создан путем ответа на корневой (подсвечен белым) пост является главная страница.
>>14140 я не смог воспроизвести такую ситуацию, посмотрел по коду и проблема которая была ближе всего - два процесса могли пытаться одновременно писать и читать файл в папке download - её я пофиксил, если это не помогло, дай знать
>>14145 братан читни ридми не поленись плиз. пнг-контейнеры надо постить вручную, только скачка автоматическая. в этом главное отличие наноборды от телеграма и прочих штук - там протокол, соединение, сервера а тут маскировка ты обычным браузером постишь (якобы) обычную картинку на имиджборду. однако если прикрутить распознавалку капчей и обойти клаудфларь защиту (на некоторых бордах) то можно и автоматического постинга добиться.
>>14150 тем у кого ВПН - хиккач показывает капчу (+ капча от клаудфлары при первом заходе, а клаудфлар так вообще зверски отсекает все что не является браузером). с другими бордами попроще но не со всеми
>>14156 за счет правил ретрансляции твой пост попадет и в следующий твой пнг-контейнер и еще в сотню следующих контейнеров он будет попадать и в тысячу следующих твоих пнг-контейнеров пост будет попадать (но уже не так часто) так что одним удалением тебе не повредить можете это тоже добавить в агитку и добавить то, что чужие посты тоже ретранслируются постоянно (кроме скрытых тобой)
>>14164 новый релиз, добавлена возможность развернуть все вложенные треды в одно полотно
также попытался сделать тред на доброчане. первый контейнер почему-то зафейленный вышел. проверить виноват ли доброчан - не успел, запощеный оригинал уже был стёрт. следующий запощенный контейнер сработал ок.
>>14177 Даже не разобрался, а уже прокукарекал. Ещё и png у него с шумом, вообще охуеть. >>14172 >даже у самого старого (в файлах пользователя) поста всегда есть равный шанс на ретрансляцию (у свежих постов этот шанс равнее Лол.
О, очередной велосипед.. Помню первую наноборду 008. В принципе сама идея работать через борды опасна. Ты всегда находишься под властью местного модера. А тот в свою очередь может как рандомно выдавать майору списки ip, так и просто банить неугодных ему анонов. Вычислить кто что написал в следующем контейнере проще репы, просто сравнивая следующий с предыдущим. Идея неплоха в целом, но работая на 5 - 6 борд разом мы также неанонимны, как постили бы в открытую. Думаю, что просто помеченные картинки, раскиданные по всему интернету дали бы гораздо лучший результат. Да, геморой искать и собирать, но зато ты не привязан к бордам вообще. А при тотальных запретах первыми пострадают сервисы где можно комментировать анонимно или без привязки к телефону (вк, фб, майру) мимо селёдка из тиддлябы
>>14187 Картинки должно быть не только легко постить, но и легко находить. >>14188 Этот петух правильно сказал, постинг на наноборде не более анонимен, чем постинг на борде-хостере. Так что из >>14172 лучше убрать пункт о «нечего вычислять».
>>14189 под нечего вычислять там имеется в виду трафик, сетевая активность компа и приложений про анонимность в агитке тоже сказано что хотите анонимности - юзайте впн
>>14188 в контейнерах порядок постов всегда перемешан и набор случаен (разве что приоритет у более свежих постов - их в контейнер попадает больше), к тому же при параллельном постинге на нескольких бордах потребуется объединение усилий нескольких админов с разных борд. я могу запостить контейнер со своим новым постом на одной борде а ктото перепостит мой пост в своем контейнере на другой борде, кто-то сделает это на третьей борде. в общем вычислить действительно реально но далеко не "проще репы". вычислить участника - да, просто. вычислить конкретного постера - заморочка.
>>14189 на рыгосте есть поиск по ключевым словам в принципе может взлететь. вообще многие файлообменные сети и сервисы например гугл драйв могут сгодиться.
вообще если ключ не разбазаривать то хуй кто что вычислит пока крыса не сольет ключ и места органам.
никогда не стоит полагаться на анонимность какого-то инструмента особенно если вы преступник. нужны дополнительные меры такие как впн, впс.
наноборда больше дает свободу и уверенность общения чем анонимность. анонимность там лишь чуть более продвинутая чем просто постинг на аиб - за счет запутанности. модерация обычных аиб на наноборду мало влияет. ну потер модер наноконтейнер - так его могли успеть скачать другие нанобордеры и обязательно репостнут (автоматически) где-то еще. а если не успели то сам постер когда будет следующий контейнер делать - туда его недавний пост тоже попадет. короче тут все схвачено.
>>14195 Но ВПН принадлежит кому-то конкретному, кто кровно заинтересован в том чтобы получить твои деньги и возможность продолжать свою деятельность на рынке такого рода услуг. То есть ты покупаешь мнимую анонимность. Есть тор, есть и2п, если битмессайдж, но все равно все верят в заграницу. С такими идеями проще капчевать тут. Какой смысл мне что-то предпринимать в виде наноборды, если проще купить впн и ощущение ложной анонимности?
>>14195 >пока крыса не сольет ключ Я это сделаю мгновенно только ради того, чтобы лично ты понял, что security through obscurity не работает и не писал больше такую хуйню: >анонимность более продвинутая за счет запутанности
>>14197 ну факт остаётся фактом - админ может просто не знать что конкретный пнг содержит нанопосты или просто не знать ключа, чтобы их расшифровать.
какие у вас требования к наноборде? железная анонимность? не по адресу. или неприятно что в агитках пишут про "чуть повышенную" анонимность? ну подумаешь. тут можно спорить. это как с и2п или тором - через тебя идет чей-то траф и тебя можно в принципе обвинить в распространении.
>>14196 прикол в том что наноборда может работать и поверх и2п на и2п чанах и даже в битмессейдже благодаря тому что каждый нанопост - полностью текстовый а не бинарный. насчет какой смысл предпринимать если можно купить анонимность - зачем ты сейчас об этом говоришь? ты купишь ВПН но твои посты и треды продолжит тереть мочерня, понимаешь?
есть железный отмаз (который разумеется не всегда прокатит если тебя будут пытать паяльником но всё же): "я качал и постил разные картинки я не знал что внутри некоторых картинок какие-то там контейнеры. я накачал себе пак картинок с кристен стюарт а потом делился скачанным паком чтобы поддержать других фанатов". и такое реально может произойти с любым из обычных посетителей АИБ - он скачает контейнер и репостнет его куда-то думая что это просто красивая фотка. а может какой-то злой хакер напишет червя который будет на компах пользователей заражать все пнг (да даже в жпег можно информацию пихать только немного другим способом и с более низкой плотностью) нанопостами. вот такие вот забавные возможности и делают наноборду особенной в плане "протокола". это не стоит сбрасывать со счетов. если гонять у себя и2п и тор вместе с фринетом то это палево такое что уже никак не отмажешься. а ввести запрет и наказание на эту хрень могут, очень даже, всё к этому идёт.
>>14199 > может просто не знать что конкретный пнг содержит нанопосты или просто не знать ключа А может и знать. И я бы предполагал худший вариант: он знает всё то же, что знаешь ты. >какие у вас требования к наноборде? Да у меня никаких вообще, просто тыкаю палочкой в тех местах, где ты написал херню. Анонимность действительно чуть повышенная, но не более.
>>14201 Если проще, то мы скрываем информацию от посторонних глаз. Если хочешь увидеть эту инфу, тебе надо скачать определенную прогу. Как интересно. Сначала пытались запилить убергодный метод шифрования но все идет к тому, что из за отсутвия гибкости у таких методов начинает пользоваться популярностью маскировка и двойное использование одной и тойже информации. Например я могу закодировать алфавит одним способом, а другой другим. Возможно сделать так, что одни и те же биты несут разную информацию в зависимости от их интерпретирования. В этом суть я считаю. Двойное, тройное а может и еще больше использование инфомации. За этим будущее
Информация, скрывающая в себе внутри еще один слой данных, причем таким образом что это невозможно увидеть без сложного, трудоемкого анализа является серьезным инструментом в деле борьбы с цензурой. Например, этот текст который я пишу содержит секретное послание суть которого сводится к двум словам - "ты пидор" - всего лишь эти два слова. Для их хранения мне потребовался весь текст до знака собачки плюс для экономии я взял пяти-битную кодировку. Пришлось избавиться от букв ё и твёрдого @ знака - вместо него я кодирую пробел. Мой текст не содержит латинских символов (на чем можно весьма эффективно сыграть в подготовке стеготекста, поскольку некоторые кириллические и латинские символы выглядят одинаково в большинстве шрифтов, но я не стал, потому что такая смесь в принципе легко палится в отличие от этого текста). Позже покажу демку на jsfiddle.
>>14234 Выдуманные кодировки, алгоритмы шифрования, вся криптостойкость которых держится исключительно на незнании алгоритма - всё это хуйня. Такое студенты ИБ на лабах ломают.
>>14239 Какой дебил будет незашифрованное сообщение прятать в кодировках. Мне нужно скрыть инфу. Обеспечить незаметность того, что она там есть. Увеличить емкость контейнера. Толко это мне нужно. Безопасность обеспечивает шифрование
>>14239 так а кто мешает заюзать в стеготексте невыдуманный алгоритм шифрования с доказанной криптостойкостью? надо различать маскировку и шифрование. если ты в открытую где-то хуйнёшь base64 какого-нибудь шифра то как минимум долго тебе так общаться не дадут - забанят, например. зачем привлекать лишнее внимание?
есть два пути: уходить в даркнеты, использовать специальные программы и соединения работать поверх клирнета: путем маскировки под обычную интернет-активность обмениваться шифрованными данными. мало того что СПРЯТАННЫМИ так еще и зашифрованными
>>14242 Кстати, почему меня должны банить за безобидные картинки. Там же нет порнографии, запрещенных каких-то образов и прочего. ПРосто картинка с непонятным рисунком или шумом. Конечно чтобы понять что она несет нужны специальные программы, но если ты обычный пользователь, то зачем тебе эти программы. Ты же законопослушный гражданин, так вот и не смотри эти картинки с помощью спец. программ. Для тебя они выглядят как простой шум. И все.
>>14243 пнг-контейнеры вовсе не выглядят как шум. даже близко не напоминают шум. шум можно вычленить если сравнить с оригиналом (если он у тебя вообще есть) в граф.редакторе. но это будет действительно просто шум.
>>14243 нецелевое использование веб-сервиса. думаю в любом ToS такое есть. на хиккаче пусть такого и нет - но тебя просто забанят, потому что "заебал непонятную хуйню постить".
>>14244 Я к тому клоню, что картинки с шумом более гибкие и обладают большей емкостью. Не вижу смысла доходить до такой крайности как МАСКИРОВКА. То есть до обычных картинок. По сути картинка с шумом и обычная картинка ни чем не отличаются кроме того что обычная картинка незаметна в плане того, что ее содержимое ни чем не выделяется. То есть человек увидив картинку с шумом сразу поймет, что что-то здесть не так. Ну и что, пускай поймет. Пусть даже посмотрит что там содержится, но сообщение все равно зашифровано. Тем более, картиночки эти постятся в тех местах, о которых все знают. В любом случае, если наноборда рассчитана на большую аудиторию, то бессмысленно скрывать шифрованное сообщение в картинке, которая ничем не отличается от других. Оптимальнее выбрать большую емкость но пожертвовать маскировкой, так как эффективность маскировки будет падать с увеличением количества людей, общающихся на этой борде
Суть в том, чтобы маскировать не за счет обычности, ни чем не привлекательности картинки, а за счет того, что картинок этих на ресурсе много, и нашу заметную картинку будет сложно найти среди кучи других обычных
>>14247 есть более тонкие методы "пометить" картинку. ты же все равно на глаз определяешь что контейнер (шум), а что нет (обычная картинка). вот простой пример - фотографии Кристен Стюарт в формате пнг. тем кто в теме - понятно, что это пнг-контейнер наноборды, те кто не в теме просто подумают что у Кристен Стюарт почему-то вдруг прибавилось фанатов. а если просто постить шум то поймут практически все, включая модеров и админа. что можно выиграть если постить чисто шум? для 512х512 вместо ~100кб будет ~800кб. нужны ли наноборде такие объемы? нет - со 100кб даже если ты 10 постов отправляешь у тебя все равно еще место в контейнере остается которое забивается чужими постами. ну и потом ты можешь взять 1024х1024 и получить 400кб вместимость
>>14263 >сравни обычные пикчи и с вшитыми данными Вот ты их и сравни, кретин. Это >>14178 изначально картинки с шумом. Они так и выглядели до вшития, понимаешь? Картинка с шумом + данные = картинка с шумом. Нормальная картинка + данные = нормальная картинка.
>>14264 >Невооружённым взглядом ты не отличишь картинку с данными от картинки без них. Ещё как отличишь. Достаточно взглянуть на цвета и увидеть, как скачет последний бит. Притом скачет не всю картинку, а только первые N пикселей.
>>14266 я как автор клиента наноборды авторитетно заявляю что у меня последний бит "скачет" всю картинку а не первые N. (первые N было в ранних версиях) и ты похоже использовал спецсредства чтобы оценить зашумленность нижнего бита, а мы тут прячем от ГЛАЗ а не от спецсредств ВЗГЛЯНУТЬ и увидеть как скачет последний бит не очень-то и реально разве что ты супермен какой то с суперзрением
>>14269 ну как бы в обычном просмотрщике ты последние биты не вычленишь и не усилишь. не пойму чего ты добиваешься. никто не говорит что "невозможно" понять что конкретный пнг - это контейнер. мы говорим о том, что это нельзя понять просто взглянув на картинку. если бы такая маскировка не работала то и не затеивали бы тогда это всё, постили бы просто шум
>>14271 а я могу предложить вариант когда одной фотографией (любого формата размера и качества лишь бы можно было бы понять что изображено) можно зашифровать один байт. и хуй подкопаешься.
смотри, берем 8 признаков, явно присутствие признака на фото - 1, иначе 0, каждый признак кодирует свой бит в байте.
пример:
1й бит - есть люди? 2й бит - есть животные? 3й бит - день/светло? 4й бит - есть снег? 5й бит - горизонт завален? 6й бит - есть вода (фонтаны в счет) или лёд? 7й бит - фото черно-белое? 8й бит - ориентация альбомная?
вот взять собрать коллекцию где на каждый возможный байт хотя бы по 10 фотографий. это чуть более двух с половиной тысяч фоток. потом нужно борду где можно в определенном порядке прикреплять несколько фото. либо альбом где-нибудь на сайте где можно фотки выкладывать пикаса хуяса инстаграм девиантарт да даже вк группа
а вообще можно заюзать 5бит и кодировать только русские буквы + пробел (без ё и твердого знака)
это значит что признаков будет всего 5 - уже проще, да и возможных комбинаций всего 32, то есть из 32х фоток уже можно составить предложение (правда будут повторы).
ну и конечно же всё нужно дополнительно шифровать до последнего бита каким-нибудь надежным алгоритмом.
>>14272 с 5битным вариантом можно так: горизонт завален? ориентация альбомная? соотношение сторон очень близко к квадрату? черно-белая? есть люди в кадре (очень задний план не в счет)?
первые четыре признака достигаются обрезкой, поворотом, переводом в чб ЛЮБОЙ фотографии
так что собрать подобную коллекцию легко может каждый
>>14273 нейронными сетями можно автоматически. чтобы не заморачиваться 5битный вариант можно в полуавтоматическом режиме типа "отметьте кадры, на которых присутствуют люди" а потом "отметьте кадры где завален горизонт". как-то так.
>>14273 зато прикинь сколько майоров нужно чтобы прочитать наноборду. у майоров единственный выход это сидеть вместе со всеми нанозадротами и каждый день осуществлять ручное распознавание фотографий (в наноклиенте это может быть и полуавтоматическое как сказано выше но участие человека все равно необходимо). и попробуй один бит не так прочитай - всё по пизде пойдет (если шифрование чуть сложнее чем просто XOR). для этого целый отдел создавать придется. существуют же всяческие scrypt суть которых - сделать расшифровку оче накладной (путем пожирания оперативы например). это примерно то же самое только ограничение чисто физическое.
спрей с невидимыми чернилами и перфокарта. пшикнул на стену в переходе и пошел дальше. чел с инфракрасным фонарём посветил сфотал - распознал. нужен спец софт, стандарт по перфокартам и рецепт чернил для изготовления дома.
идешь блядь камушки пинаешь ногой. да не просто пинаешь а группируешь их в группы по 2 или 3 камушка. 2 камушка это ноль, 3 камушка - единица. направление - от начала улицы к концу (по нумерации домов). или идешь бычки бросаешь определенной марки - слева бросил - 1, справа - 0. а потом кто-то другой идет и в кармане пальцем жмет на 2 кнопки по очереди - считывает.
всё хуйня вот следы на снегу это тема. идешь блядь и ногу иногда подворачиваешь вправо. а подворачиваешь на тот шаг, который приходится на единицу. на ноль - ничего не подворачиваешь.
не, хуйня. метишь блядь поручень в одном и том же месте куском изоленты. то метишь то снимаешь метку. каждый день в 12 часов должна присутствовать или отсутствовать метка. за месяц 30 бит передаешь. так-то.
>>14280 >да не просто пинаешь а группируешь их в группы по 2 или 3 камушка. 2 камушка это ноль, 3 камушка - единица. направление - от начала улицы к концу (по нумерации домов). Лол. Прямая дорога в дурку.
>>14284 палево это, а емкость не "небольшая" а довольно высокая. вот почти без палева но с емкостью ниже раз в 5: https://jsfiddle.net/yaebpft9/8/ разбиваем текст по пробелам на куски, считаем сколько в кажом куске символов (запятые и прочее - в счет), пропускаем куски в 1-4 символа, остальное считаем битами, кусок с четным количеством символов - 0, с нечетным - 1.
демка недоделанная надо постоянно фигачить кнопку апдейт. если сделать чтобы подсветка была постоянной то можно подстраиваться и подбирать/менять слова сразу как печатаешь буквы. но так вообще не очень много времени уходит на подготовку.
кодировка от 00000 до 11111: абвгдежзийклнопрстуфхцчшщ_ыьэюя
>>14296 можешь объяснить подробнее. как записать туда информацию. Вот разбил ты на слова больше 4 символов. Перевел по своей системе в биты (четное 0 нечетное 1) получилось типа 0110010001 и как сюда что-то записать. Ну поменяешь ты 0 на 1, а как это отразится на исходном тексте? В какое-то слово придется лишнюю букву добавить?
>>14298 немного не так. у тебя есть соответствие: 00000 - а 00001 - б ... 10001 - с ... 11010 - пробел 11111 - я
вот из этих 5-битных байтов и составляешь свой текст: 111111101010001111110000100000 = я сяба
а потом ты вводишь текст в котором куски (не слова) разделенные пробелом кодируют по одному биту (кроме кусков размером в 1-4 символа). то есть каждый кусочек больше 4х символов это либо ноль либо единица - зависит от того четное количество символов в кусочке или нет
вот пример кусочка: которые, как видно сюда входит запятая. можно ее выбросить если надо подправить результат. или вставить слово перед этим другое. или это заменить на другое
чего тут не хватает так это шифрования битов. если взять что-то послжонее XOR-ирования, то без знания ключа никак не отличить обычный текст от текста с таким вот тайным посланием
>>14307 Знаешь кто не целевая аудитория? Это те кто сидит в б, а у меня есть желание разобраться и если ты не хочешь и не имеешь жедания написать, так и скажи.
>>14306 Я считаю, что лучше подстраивать текст который я хочу скрыть под открытый текст то есть контейнер. Это гораздо удобнее+ тотатльное паразитирование на чужих постах, т.к. не надо создавать свои
В отличие от криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает сам факт его существования. Как правило, сообщение будет выглядеть как что-либо иное, например, как изображение, статья, список покупок, письмо или судоку. Стеганографию обычно используют совместно с методами криптографии, таким образом, дополняя её.
Преимущество стеганографии над чистой криптографией состоит в том, что сообщения не привлекают к себе внимания. Сообщения, факт шифрования которых не скрыт, вызывают подозрение и могут быть сами по себе уличающими в тех странах, в которых запрещена криптография[1]. Таким образом, криптография защищает содержание сообщения, а стеганография защищает сам факт наличия каких-либо скрытых посланий.
А теперь вопрос: Вот мы придумали наноборду, придумали способ прятать (стеганография) зашифрованные (криптография) посты, например, в текст. Но чтобы этим пользоваться надо чтобы все могли это находить и расшифровывать. То есть получается проблема в том, что любой инсайдер может заиметь инструмент, который позволит ему четко указать на место где был запощен конкретный текст в стегоконтейнере, и если он связан с админом или является админом то можно определить ай-пи человека который запостил это. Как убрать эту связь?
В 2010 году Федеральное бюро расследований выяснило, что Служба внешней разведки Российской Федерации использовала специальное программное обеспечение для скрытия информации в изображениях. Данный способ использовался для связи с агентами без дипломатического прикрытия за рубежом.[17]
можно использовать что-то типа pgp и просто передавать сообщение другому (одному) участнику. сообщение - свое или чужое, полученное от кого-то.
1) все участники постят свои публичные ключи 2) участник выбирает кому отправит сообщение, шифрует его используя публичный ключ 3) участник просматривает сообщения в поисках такого которое он мог бы расшифровать своим приватным ключом 4) все это в стегоконтейнерах которые никак себя не выдают (текст по методу подсчета длины сегментов: https://jsfiddle.net/yaebpft9/10/)
при этом можно вычислить только того, кто воспользовался твоим публичным ключом. и зная как все организовано нельзя со 100% вероятностью утверждать
возможные атаки: майор спамит своими публичными ключами так что хуйня думаем дальше
>>14324 нельзя со 100% вероятностью утверждать что именно ты - автор сообщения а не просто передал чужое. но майору достаточно факта участия (допустим криптография в стране стала запрещена)
>>14328 хиддач вообще-то умер 7 ноября последний движок там был овер_чановский но это не совсем та децентрализация о которой речь в оп-посте, это, скорее была федерализация (админы, сервера)
>>14364 если и поднимет кто-то новую борду то все равно ненадежно это будет. нужна децентрализация
>>14350 в декабре 2015 (недавно) начал работу первый полноценный квантовый компьютер. квантовые компьютеры с легкостью ломают gpg и прочую лабуду с публичными ключами на которой зиждется почти вся современная криптография. пока что это не ощущается но в ближайшем будущем все кто не перешел на что-то реально невзламываемое - отсосут
>>14368 Тока у гугла это пока что. Это всё вопрос времени. Стоимость производства будет снижаться. Это как с первыми компами. Спецслужбы государств одними из первых возьмут эти компы на вооружение (о чем, возможно, не сразу станет известно). И целью атак могут стать всяческие Телеграмы, айтупи, меш-сети и прочие решения на основе алгоритмов которые легко ломаются квантовым компом. Уже сейчас надо об этом задуматься при проектировании новых протоколов.
>>14375 существование односторонних функций не доказано. то есть не факт что завтра не появится алгоритм который их ломает. и не факт что это будет квантовый алгоритм
что не ломается - симметричная криптография. надо придумать как шарить ключ да так, чтобы никто не перехватил (сейчас для этого используются якобы "не поддающиеся взлому" публичные ключи) и все будет ок. ну и потом надо уходить от интернет-провайдеров, поскольку они под колпаком давно а следовательно и пользователи. то есть смотреть в сторону меш-сетей, что-то решать с дальнобойностью (есть варианты, коротковолновая передача, мобильная связь (роутеры gsm + wifi)
>>14378 >существование односторонних функций не доказано Взорвался от этих криптоформулировок уровня /b/. Слыш, петух, а функция f(x)=1 не односторонняя ли часом?
>>14378 gsm (если речь о csd) - дорого и бессмысленно лучше задействовать имеющиеся мощности того же gprs/edge - палево точно такое же, но скорость выше и стоимость ниже.
чтобы сильно не палиться - нужен особым образом подготовленный телефон (на андроиде) с симкой, не привязанной к личности. во-первых точку доступа вай-фай (скрытую - чтобы свой ssid не транслировала, саму точку сделать без пароля или с очень простым паролем ну чтобы если и найдут то было бы ясно что пользовать мог кто угодно в доме) на нем сделать, во вторых антенну припаять посильнее (а можно вообще wifi-маячок через usb-переходник прикрутить был бы драйвер и тогда не придется телефон разбирать). в-третьих детектор движения на него (через камеру и через гироскоп). чтобы по любому движению отключал все симки, все соединения и ждал (например 1 час) (или хардкор версия - стирать всю прошивку превращаясь в кирпич). и всю эту красоту запрятать на чердаке своего многоэтажного дома или где-то в подъезде за щитком. нужно быть немного электриком чтобы подключить к сети зарядку. если это частный сектор то где-нибудь на столбе повесить ящичек. на таких открытых вариантах можно солнечную батарею прикрутить чтоб автономия была. на крыше заброшки, гаража, магазина. зависит от дальнобойности антенны, которую прикрутишь. в идеале у антенны должна всё время плавать мощность чтобы усложнить детектирование местоположения. деньги на эту симку закинуть один раз (и много) и не спалиться при этом. после этого можно и в клирнете сидеть.
>>14371 о том и спич. Быдлу квантовые компы никто не продаст никогда. Для них наоборот набирается тренд модности планшетов и смартфонов вместо персоналок и наебуков. Быдло только радуется. ИМХО, скоро персоналки будут доступны только по лицензии для программеров и админов, а остальным - хуй. Типа покупайте планшет
>>14388 так там же бэкдоры от америкосовских спецслужб, оно тебе надо? динахуй сука засланец пиндосовский, гнида. это только они рекомендуют аэс и ты тут сука вылез чмо думал тебя не засекут?
>>14388 а если б был способ безопасно передать ключ то не было бы и вопросов типа "а что ж делать когда квантовый компьютер будет у любой спецслужбы куда бижать". пока что с этим неплохо справлялась "криптография с публичным ключом" но это такая афёра что пиздец - нихуя не криптостойко, никто нихуя не доказал и все сука пользуются потому что ничего лучше не придумали. правда более менее адекватные банки выдают брелок с цифровым ключом который генерится каждые N секунд и без него хуй авторизуешься. вот тут более-менее можно какие-то гарантии давать.
>>14378 >существование односторонних функций не доказано. то есть не факт что завтра не появится алгоритм который их ломает. и не факт что это будет квантовый алгоритм
>что не ломается - симметричная криптография. Неверно. Односторонние функции выводятся из симметричной криптографии через конструкцию Мёркла-Дамгара. >надо придумать как шарить ключ да так, чтобы никто не перехватил (сейчас для этого используются якобы "не поддающиеся взлому" публичные ключи) и все будет ок. Надо. Но подписи важнее. >ну и потом надо уходить от интернет-провайдеров, Щаас. Если за участие в мешах будут расстреливать, а будут, никакого меша не будет. И даже если не будут расстреливать, после того как копирасты одумаются и будет рубль за фильм на нетфликсе, ваши меш-сети никому даром нужны не будут: для нелегальных применений они не обеспечивают анонимности, для легальных дают слишком низкую скорость и слишком высокий пинг.
>поскольку они под колпаком давно а следовательно и пользователи. то есть смотреть в сторону меш-сетей, что-то решать с дальнобойностью (есть варианты, коротковолновая передача, мобильная связь (роутеры gsm + wifi)
>>14416 ну почитай википедию ну ёбаный в рот. там и определение тебе есть и кандидаты (!) в односторонние функции. + там устаревшая инфа так как есть обратный алгоритм Шора тот пример скорее всего не подойдет под определение если его нормально выразить. а если и подойдет то в криптографии окажется неприменим.
>>14395 Лол, впервые про OTP-брелки услышал что ли? Я ещё в 98-ом у бати видел. Или это предъява к косноязычности автора, назвавшего OTP «цифровым ключом»? Тогда без вопросов.
>>14424 сам ты косноязычный, уёба, "брелок с цифровым ключом который генерится каждые N секунд" (а не "цифровой ключ" как ты вырвал из контекста) - вполне подходящее определение для аппаратного токена смотри, гандон, определение, впитывай: Токен (информационная безопасность), или ключ — компактное устройство в виде USB-брелока, предназначенное для авторизации пользователя, защиты электронной переписки, безопасного удаленного доступа к информационным ресурсам, надежного хранения данных;
>>14455 пока только один ключ тот что зашит там меняй ключ на чистой только что распакованной проге. но "все" пока что на старом ключе.
насчет нового треда - хз есть ли смысл его создавать. потрут же к хуям. вот глянь на мой пик если успеешь - допустит ли какой нибудь модератор такой тред? модераторы тут орудуют активно
>>14507 под винфон - реально если заморочиться. под андроид/айфон - тоже (хамарин). но пользоваться всем этим там будет неудобно. ведь для постинга нужно заливать пнгшки на другие борды. а посмотреть борду (и даже поотвечать) - проще на компе ай-пи домашней сети использовать для сервера наноборды и с любого телефона уже заходить на этот ай-пи.
http://rghost.net/8MVTk6pDk
https://u.pomf.io/jhazuw.odt
Это конечно просто фантазии диванного эксперта с поверхностными знаниями. Но вроде ничего сложного - умный школьник, увлекающийся программированием запилил бы рабочий прототип за месяц по вечерам, я уверен, три школьника бы сделали большую часть того, что там очевидно как делать. Просто наверно децентрализованные форумы никому не нужны на самом деле - ведь ни Syndie, ни Bitmessage так никто и не допилил до чего-то удобного.