Zer0Galaxy
-
Публикации
1 220 -
Зарегистрирован
-
Посещение
-
Победитель дней
189
Сообщения, опубликованные пользователем Zer0Galaxy
-
-
Обнаружил неприятную особенность сети rednet. Оказывается символы с кодом больше 127 передаются некорректно. Тоже касается и записи на диск. Это надо учитывать при разработке алгоритма шифрования.
-
А зачем это роутеру? Если я решу сделать Craftnet платным, тогда понятно. Но Craftnet платным не будет пока я в нем участвую.когда ты будешь подключаться к роутеру нужно будет ввести логин пароль
Может кто нибудь захочет стать провайдером и продавать трафик, тогда пусть делает
-
Да, действительно. При такой схеме можно только продублировать перехваченное сообщение, но не подделать. Чтобы и дублирование было невозможно нужно в хеш вставлять еще какую нибудь соль, например случайно сгенерированное число, которое генерируется сервером для каждого сеанса связи.
Но я не об этом. Я о том, что если работать не в направлении шифрования сообщений, а в направлении электронной подписи?
-
Не совсем понятно. Поясни на примере, пожалуйста.Можно сделать систему логин пароль к роутеру , а данные логина и пароля шифровать и передавать на роутер,нужно что бы роутер выдал компьютеру уникальный адрес (физический)
-
А по поводу первого поста.
С Cryptographic Accelerator разбирался когда то. Вроде, ничего сложного. Могу освежить. Помню, там строки для шифрования ограничены по длине. Если предполагается, что пользователь будет работать со своего компьютера, а не с банковского терминала, то этот вариант не приемлем т.к. нуб вряд ли сможет скрафтить Cryptographic Accelerator, даже если бы он крафтился.1. Нужно разобраться с блоком Cryptographic Accelerator.
Когда то поднимал тему шифрования открытым ключом. Вопрос передачи ключа при этом снимается, но я не смог решить задачу эффективной генерации пары ключей. Если использовать закрытый ключ, то его можно генерировать один раз для каждого пользователя, а хранить на RFID-карте. Карту же выдавать при личном посещении пользователем банка.2. Придумать свой алгоритм шифрования
Лично я противник всего, что выходит за игровой сервер. Исключение делаю только для pastebinа и то не всегда3. Может как то использовать возможность сети интернет и по нему передать ключи.
-
Если речь идет только о работе банковской системы, то может нет необходимости шифровать сообщения? Ну узнает Ева, что Алиса купила два алмаза. И что? Тут важнее идентификация абонента, что бы никто не покупал алмазики за чужой счет.
Предлагаю рассмотреть следующий вариант. Предположим, пользователь User имеет пароль Password и хочет передать сообщение Message на сервер. Клиентская программа формирует строку Message+H(Message+User+Password), которая и передается по незащищенному каналу. Где H() - хеш-функция. Обратите внимание, сообщение передается незашифрованным, но сопровождается подписью, подделать которую невозможно не зная пароля.
-
А двустороннюю связь сделать можно? Чтоб не оставлять девушку одну в кафе. Отправил SMS и черепашка переставилась.
-
А кто нибудь пробовал ОС с СС связывать?кстати для меж пространства можно использовать ликующиеся карты из openComputers
-
Пол стака иридия и одна солнечная панелька и гравик твои. Идет?Круто,я соавтор,а мне ничего не дали.Zer0Galaxy,а так не красиво
-
Интересная мысль. Но сразу вопрос. Как будет вести себя черепаха при пролете областей не покрытых чанклоадерами?... можно подумать, как сделать подобие удаленного заказа и доставки товара на дом ...
-
-
А можно ли при помощи этой штуки организовать связь между двумя компьютерами?
-
-
Craftnet расширено на северо-запад
-
Не до конца разобрался с механизмом обмена сообщениями. Вот, что удалось понять, поправь если не так
1. Чат построен на основе одного единственного компьютера, к которому прикручена фиговина "openperipheral_glassesbridge"
2. Каждый участник чата должен иметь на носу супер очки, связанные с этой фиговиной при помощи ПКМ
3. Для отсылки сообщения в GoogleGlass Chat необходимо в обычный чат послать сообщение, начинающееся с $$. После чего, каждый у кого очки, это сообщение увидит. Причем в обычный чат сообщение не попадет.
4. Расстояние от пользователя до компьютера значения не имеет
-
Не знаю когда смогу зайти на сервер. Укажи координаты. Можно в личку
-
В какую сторону расширять? Не хотелось бы строить сеть там, где она никому ненужна.Быстрей расширяй сеть! а то на 1000 блоков от спавна не берет...
Без проблем. Только это будет скорее не роутер, а мост между проводной и беспроводной сетьюИ еще есть идея сделать проводной инет в смысле написать такойже роутер только с одной стороны локальная сеть а с другой CraftNet
-
Но лично я в подобных случаях не заморачиваюсь с пустыми захватами, а использую функцию gmatch. Она возвращает функцию-итератор, которая при каждом очередном вызове ищет следующее совпадение шаблона в строке. Функция возвращает функцию! Звучит ужасно, но выглядит всё не так страшно, если применить ее в операторе for in
s='x=10 y=11 z=12' -- исходная строка t={} -- таблица, в которой будем хранить результат for key, val in s:gmatch('(%w+)=(%d+)') do t[key]=tonumber(val) -- помещаем результат в таблицу end for key, val in pairs(t) do print(key,'=',val) endОператор for in выполнится столько раз, сколько раз будет найден шаблон '(%w+)=(%d+)' в исходной строке. Причем переменные key и val всякий раз будут принимать очередные захваченные значения - имя и значение переменной.Думаю, теперь мы готовы к тому, что бы написать собственные аналоги функций serialize и unserialize.
-
5
-
-
Вернемся к строке s='x=10 y=11 z=12', с которой мы начинали знакомство с шаблонами. Мы видели, что извлечь из нее значения переменных можно так:
x,y,z=s:match('x=(%d+)%s*y=(%d+)%s*z=(%d+)')или так:x=s:match('x=(%d+)') y=s:match('y=(%d+)') z=s:match('z=(%d+)')Но как быть, если количество, содержащихся в строке переменных очень большое, скажем, несколько тысяч? Неужели их все придется прописывать вручную? Нельзя ли это как то автоматизировать? Последний пример из предыдущего поста подсказывает, что можно. Мы ведь можем захватывать не только значения, но и имена переменных. А полученные значения размещать в таблице где имя переменной будет именем элемента таблицы. Для простоты будем считать, что имена могут состоять из букв или цифр, а значения только из цифр. Пропишем шаблон для поиска одной переменной и заключим его в цикл для поиска остальных.s='x=10 y=11 z=12' -- исходная строка t={} -- таблица, в которой будем хранить результат for i=1,3 do key, val=s:match('(%w+)=(%d+)') -- извлекаем имя и значение t[key]=tonumber(val) -- помещаем результат в таблицу end for key, val in pairs(t) do -- выводим результат print(key,'=',val) endПриведенный пример кода загружает из исходной строки имена и значения переменной в таблицу t. Однако, если мы попытаемся этот код выполнить, то увидим, что в результате таблица t будет содержать только одно значение x=10. Произошло так потому, что функция match всегда начинает поиск совпадений с начала строки. Всегда, если ей не указать с какого места нужно начинать поиск. Оказывается match имеет еще один необязательный параметр, указывающий с какой позиции строки следует начинать поиск. Его можно узнать вставив в шаблон пустой захват (). Такой захват вернет позицию символа в строке, следующего за найденной подстрокой.s='x=10 y=11 z=12' -- исходная строка t={} -- таблица, в которой будем хранить результат n=1 -- начинаем поиск с начала строки for i=1,3 do key, val, n=s:match('(%w+)=(%d+)()',n) -- извлекаем имя и значение -- пустой захват ставим в конце шаблона, чтобы от вернул позицию символа, следующего за найденной подстрокой t[key]=tonumber(val) -- помещаем результат в таблицу end for key, val in pairs(t) do print(key,'=',val) endПосле внесенных изменений код должен работать более корректно.-
2
-
-
Уточню перечень спецсимволов, используемых в шаблонах
. (точка) - заменяет любой символ.
%a --- все буквы.
%c --- все управляющие символы. (Символы с кодом от 0 до 31, которые не имеют графического представления)
%d --- все цифры.
%l --- все строчные буквы.
%p --- все знаки препинания.
%s --- все пробелы (символы с кодом 9, 10, 12, 13, 32).
%u --- все заглавные буквы.
%w --- все алфавитно-цифровые символы (буквы и цифры).
%x --- все шестнадцатеричные цифры (цифры и буквы a-f, A-F).
%z --- символ с кодом 0.
Использование заглавной буквы в качестве спецсимвола меняет смысл на противоположный. Например %A - все символы кроме букв, %S - все печатные символы
Так же хочу добавить еще два спецсимвола ^ и $. Если шаблон начинается с символа ^ или заканчивается символом $, то искаться такой шаблон будет соответственно в начале или в конце исходной строки.
Несколько примеров использования шаблонов:
'[%+%-]?%d+' - ищет целое число в десятичном формате
'0x%x+' - число в шестнадцатеричном формате
s= s:match('^%s*(.*)%s*$') - удаляет из строки начальные и конечные пробелы
key, val = s:match('([%a_][%w_]*)%s*=%s*(%S+)') - разбирает конструкцию типа key = val, причем имя key должно содержать буквы, цифры или символ подчеркивания и начинаться с буквы или подчеркивания, а val может содержать любые символы кроме пробела.
-
4
-
-
-
Разобрался. Pastebin работает если интернет плату подключить
-
А как же новое и непознанное? Я поковырялся в моде. Вроде прога pastebin есть. Но как ее запустить?так что лучше пользуйся старым добрым CC[/color]
-
Каким образом можно залить прогу на компьютер? Способы, работающие на СС не стреляют. Неужели всё ручками набирать?

Размышления о шифровании и безопасной передаче данных
в Сетевые технологии
Опубликовано:
Пробую в эмуляторе CCEmu
[ATTACH]127[/ATTACH]
На скриншоте видно, что пытаюсь отправить символ с кодом 195, а принимаю - 239. Почему так, не знаю
На всякий случай реализовал алгоритм шифрования, у которого на выходе строка содержащая только шестнадцатеричные цифры. В результате зашифрованная строка вдвое длиннее незашифрованной