Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Итакс, любителям прятать от чужих глаз значения переменных в Neobook... Вот вам для тестирования простая функция для шифрования и дешифрования переменных внутри Необук. В скрипте функции используются несложные алгоритмы перемешивания ascii значений символов на основе вводимого ключа. Функцию положить в .../Functions/VBScript Examples Управляется через переменную [Flag]: 1-зашифровать, 0-расшифровать.
P.S: В скрипте поддерживается кириллица, но при ее использовании в проекте нерусифицированной НБ 5.6.2 часто всплывают неправильные "кракозябры" или отсекается кусок переменной, хотя если щелкнуть по дебагеру и скопировать значение [Result] оттуда, то оно оказывается правильным... Это во всех версиях так, или просто глючит нерусская НБ? В скомпилированном виде вроде все ок.
Так я и понял, зачем тебе понадобились кодировки )) но если хочешь шифровать файл целиком, то функцию надо переделать, а то будешь построчно шифровать...
Добавлено (26 Август 2009, 13:44) --------------------------------------------- А эта функция специально для шифрования/дешифрования переменных внутри НБ, таких как пароли, ключи и прочее...
DEMBEL, просто класс!! Я думал, вот что можно этакого для пользователей НБ придумать, ну уроки, ну готовые проекты, а тут ВБ-функции!! Вообще супер! Главное с помощь них можно очень удобно расширять функционал НБ, гораздо удобнее, чем с помощью плагинов!! Молодец!
да нет, то было из-за Emul, есть такая качалка(он результат поиска сахраняет в кодировке UTF-16LE), а тут надо по другой теме, я постил уже, там Алекс мне обяснял Кстати на счет кодировок, а можно данные кодировать\декодировать без чтения\сахранения в файл, прям в объект "Text" поля. Я так понимаю, надо менять тут (Param=[%1]|FileName|путь к исходному файлу:) и все, да?!
Сообщение отредактировано sp3d - Ср, 26 Августа 2009, 13:51
Для файлов она вряд ли пойдет, есть некоторые ограничения по формату шифруемой строки - наличие спец.символов (CR, LF) и прочих - что потребует "перевода" такой переменной чтоб вбскрипт ее понял правильно, ну хотя это еще надо проверить...
Quote (sp3d)
Кстати на счет кодировок, а можно данные кодировать\декодировать без чтения\сахранения в файл, прям в объект "Text" поля. Я так понимаю, надо менять тут (Param=[%1]|FileName|путь к исходному файлу:) и все, да?!
Нет, в той функции используется именно чтение/запись файлов. Ты хочешь на-лету перекодировать строку переменной? Щас я гляну что можно сделать... Как задавать вопросы
короче, работает только с латиницей, кирилица не канает
в скрипте канает, только я не могу понять в чем дело с необук
Мож типы переменных в проекте неверные? Выводятся они странно ((( Вот исходные данные, сравниваем результат с дебаггером -
Берем из дебаггера значение Result (оно меняет свои кракозябры при выделении, в чем дело?)
обратите внимание что непечатаемые символы пробела [] в поле "результат" выводятся как пробел а не как символ, а это имеет значение... а в переменной записано правильно, с символами.
Суем в строку на расшифровку и видим в результате первоначальную строку в кириллице!
Quote (sp3d)
дешифруем:
ты на скрине дешифруешь незашифрованную исходную строку, а надо получившиеся кракозябры туда ставить же
ну в принципе пойдет, в переменную же можно загружать содержимое файлов, да и сохранить потом можно... кто нибудь проверял корректность такой работы? если тема еще актуальна, я сделаю отдельную функцию шифровалки файлов (xor), высказывайте пожелания если есть. Как задавать вопросы
если тема еще актуальна, я сделаю отдельную функцию шифровалки файлов (xor), высказывайте пожелания если есть
Тема актуальна! И будет, без сомнения, весьма полезна необукерам! Например, при создании тех же тестов, с внешней базой вопросов с вариантами ответов - чтобы юзер не мог подсмотреть ответы в простом текстовике. Собственно это могут быть любые текстовые файлы поддержки проекта, в которые не хотелось бы пускать избыточно любопытного пользователя. Просто я в VB совсем ноль и не могу поддержать беседу :), а в своем проекте использую только то, что понимаю. Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Дата: Вс, 20 Сентября 2009, 20:21 | Сообщение # 16
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
А вот одна из моих более серьезных игрушек: Cipher Algorithms 0.6 beta - набор криптографических js/vbs функций для Neobook (скомпилированная демо-версия). Пока доступны два режима работы - шифрование строковых переменных и текста (будет еще для файлов). Поддерживаются алгоритмы: AES-Rijndael (256bit) Base64 BlowFish BrainFuck RC-4 Хэш-функции: CRC-32 MD5 RIPEmd-160 Sha-256 Sha-512 --- В большинство алгоритмов (там где это возможно) добавлено шифрование с ключом по алгоритму HMAC; для AES, BlowFish, RC-4 ключи обязательны, для остальных (в т.ч. хэш-функций) необязательны, но возможны. Base64, BrainFuck, CRC-32 ключей не поддерживают (пока что). В финальной версии будут добавлены обработка файлов, еще несколько алгоритмов (ххTEA, вариации AES, возможно RSA(если удастся портировать), варианты кодировки). Все входящие данные перекодируются в UTF-8, так что проблем с кириллицей быть не должно. В режиме шифрации текста входящие данные вначале сбрасываются в файл c:\tempfile.tmp затем читаются скриптом как текстовый поток, результат работы выводится в приложение непосредственно из функции через переменную. Чтение через файл сделано чтобы хоть как-то сохранить изначальное форматирование текста, возможно в финальной версии обойдемся без промежуточного файла. А возможно что мы вообще будем оперировать html-файлами, благо js/vbs позволяет! Этакая саморасшифровывающаяся страница. --- Исходники в виде отдельных функций и демо-оболочки будут выложены позже.
Дата: Вс, 20 Сентября 2009, 21:38 | Сообщение # 18
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (DEMBEL)
Cipher Algorithms 0.6 beta - набор криптографических js/vbs функций для Neobook
Очень любопытно ! У меня работает! По крайней мере, работает то, что по видимому должно работать на данный момент.
DEMBEL, Как в дальнейшем предполагается использовать эту программу? Будет ли этот набор функций оформлен библиотекой функций для NB? Или в виде плагина?
Дата: Вс, 20 Сентября 2009, 21:48 | Сообщение # 19
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Зачем плагины, это просто функции - текстовые файлы. Скопируешь исходники в папку Functions, и будешь вызывать их через Call с параметрами, ни разу не использовал чтоли? При компиляции зашиваются в проект, все просто. -- так что теперь профессиональная криптография будет доступна и для neobook. Как задавать вопросы
Дата: Вс, 20 Сентября 2009, 21:57 | Сообщение # 20
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (DEMBEL)
Скопируешь исходники в папку Functions, и будешь вызывать их через Call с параметрами
Да, разумеется, благодаря Sp3d и Peter`у, я уже использовал функции. Просто выложен экзешник, вот и спросил. А использовать в виде набора функций - это будет очень удобно!
Quote (DEMBEL)
так что теперь профессиональная криптография будет доступна и для neobook.
СУПЕР!!! NeoBook становится всё более мощным и универсальным инструментом! Такие серьезные и универсальные возможности делают NeoBook еще интереснее!!! Спасибо, DEMBEL!!! Будем ждать полной бета-версии!
Дата: Вс, 20 Сентября 2009, 22:06 | Сообщение # 21
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
На очереди расковырять взаимодействие с обьектом "браузер" - там же тоже можно скрипты выполнять, а это тоже круто. Например, хранишь на сервере шифрованные html/xml-странички, а показать их в расшифрованном виде можно только у тебя в приложении. Преимущества хтмл налицо - можно какой хочешь документ с любым оформлением состряпать и зашифровать. Но это все потом...
Добавлено (20 Сентябрь 2009, 22:06) --------------------------------------------- В таком случае, кстати, взлом приложения ничего особенного хакеру не даст, ни исходников, ни алгоритмов, ни открытых паролей... Надо мне только схему взаимодействия продумать, чтобы ничего лишнего не видно было.
Дата: Вс, 20 Сентября 2009, 22:16 | Сообщение # 22
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (DEMBEL)
Например, хранишь на сервере шифрованные html/xml-странички, а показать их в расшифрованном виде можно только у тебя в приложении.
Чрезвычайно любопытная идея! А инструмент "браузер" в NB - это вообще, я подозреваю, страна невероятных возможностей!
DEMBEL, я предлагаю в библиотеке функций разделить простые "контрольные суммы" и "криптографические хэш-функции", на том основании, что первые выполняются на порядки быстрее и очень удобны для других целей - не для собственно шифрования, а для контроля ошибок (например, для проверки правильности записи в файл, проверка корректности архивации, проверка корректности передачи информации и пр.). Я вот при работе с RTF ведь так и не нашел способа точной проверки корректности записи в файл, а контрольная сумма - это как раз то, что надо, по-моему!!! И можно быть уверенным, что информация ТОЧНО записана в файл. Это еще больше расширит сферу очевидного (особенно для начинающих) применения библиотеки криптографических функций!
Дата: Вс, 20 Сентября 2009, 22:31 | Сообщение # 23
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
требуется протестировать режим шифрования текста (со строками все нормально) - чтобы после расшифровки сохранялось изначальное форматирование текста. Возьмите свои ценные тексты, загоните в шифратор, потом расшифруйте полученную чушь. Документ должен остаться в неизменном виде. Имейте в виду, для некоторых алгоритмов оччень большой текст может обрабатываться до пары минут! ---
Quote (VadimLevkin)
я предлагаю в библиотеке функций разделить простые "контрольные суммы" и "криптографические хэш-функции"
правильнее наверное сказать "криптографические функции" и "хэш-функции", т.к. контрольная сумма это и есть хэш - результат работы хэш-функции. А применяются они, как ты верно упомянул, для контроля целостности информации (зная предполагаемый хэш можно точно сказать, это то что надо, или не то), для передачи и хранения данных в открытом виде - хэш-функция (в отличие от криптографической) работает только на шифрование, обратный процесс расшифрования невозможен (или чрезвычайно затруднителен) - сами данные остаются скрытыми, оперируем только их хэшами - например храним пароли в реестре и не паримся. --- Еще можно хэширование применять в виде цифровой подписи - если вычисленный хэш документа совпадает с указанным - то однозначно это оригинал документа. Как задавать вопросы
Дата: Вс, 20 Сентября 2009, 22:39 | Сообщение # 25
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (sp3d)
и в чем смысл?! Если у тебя на сервере есть странички, то они предназначены для показа юзерам и наз-ся сайт, так ведь?! или я что то не догоняю?!
правильно, а когда юзер откроет этот "сайт" в браузере то увидит белиберду (или вообще не увидит), а если страничку загрузит приложение, тогда только увидит. Страницы-то шифрованные! -- Смысл в том чтобы делать секретные форматированные документы и хранить их удаленно. Если распространять их вместе с приложением, т.е. хранить локально, то риск их взлома возрастает, сам понимаешь. -- Да и не обязательно это .html документы для показа на сайте, это может быть что угодно и валяться где угодно. Под html я предполагаю лишь структуру документа - а она может быть отображена в обьекте "браузер", теперь вкуриваешь? Как задавать вопросы
Дата: Вс, 20 Сентября 2009, 22:54 | Сообщение # 26
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (DEMBEL)
правильнее наверное сказать "криптографические функции" и "хэш-функции"
Разницу между контрольными суммами и криптографическими хэш-функциями я почерпнул здесь. Не знаю, насколько там верно описано, но кажется логичным.
По тестингу. Оба доступных алгоритма шифрования текста почему-то не корректно обрабатывают "верхний индекс" и знак "тире" (при расшифровке вместо тире дает знак вопроса), при этом длинный тире и дефис не обрамленный пробелами обрабатывает нормально. Для тестинга использовал абзац:
Quote
Secure Hash Algorithm 1 — алгоритм криптографического хеширования. Описан в RFC 3174. Для входного сообщения произвольной длины (максимум 264 − 1 бит) алгоритм генерирует 160-битное хеш-значение, называемое также дайджестом сообщения. Используется во многих криптографических приложениях и протоколах. Также рекомендован в качестве основного для государственных учреждений в США. Принципы, положенные в основу SHA-1, аналогичны тем, которые использовались Рональдом Ривестом при проектировании MD4.
Во фрагменте "(максимум 264 − 1 бит)" цифры 64 должны быть в верхнем индексе, а следующее за ними тире при расшифровке получается в виде знака вопроса. Исходник абзаца тут.
Quote (sp3d)
и в чем смысл?! Если у тебя на сервере есть странички, то они предназначены для показа юзерам и наз-ся сайт, так ведь?!
На сайте, таким образом, можно организовать скрытые странички и доступ к ним (будут доступны только из приложения). При этом на данные страницы ссылок с других (открытых) страниц сайта не будет, соответственно никакой серфер на них просто так не наткнется. Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Дата: Вс, 20 Сентября 2009, 23:03 | Сообщение # 27
Необукер
Проверенные
Сообщений: 4238
Offline
Quote (DEMBEL)
теперь вкуриваешь?
нет не вкуриваю, зачем хранить файлы на сервере да еще и шифровать, если они не предназначены для показа?! что мешает хранить на диске. Я понимаю зашифровать хтмл чтоб опенсурс не видеть в браузере по клику "код хтмл", а так
Я бы не спешил так утверждать. Сам проверял залитым файлом для теста, написал длинное слово (быть увереным, что оно не повторится), сразу не нашел, а когда через 2 недели затестил гугл его вытянул правдо сайт был в базе поисковика, но на то он и сайт а для обхода этого мона запретить в файле ".htaccess" или в "robots.txt" ссори точно не помню, в сети полно инфы Добавлено (20 Сентябрь 2009, 23:03) ---------------------------------------------
Quote (VadimLevkin)
На сайте, таким образом, можно организовать скрытые странички и доступ к ним (будут доступны только из приложения)
Я просто не вкурсе был, что вы в бонда играете, хотя бы в личку сообщили
Сообщение отредактировано sp3d - Вс, 20 Сентября 2009, 23:11
Дата: Вс, 20 Сентября 2009, 23:15 | Сообщение # 28
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (sp3d)
нет не вкуриваю, зачем хранить файлы на сервере да еще и шифроват
Вот один из ответов:
Quote (sp3d)
а когда через 2 недели затестил гугл его вытянул
А вообще причин может быть сколько угодно. Например, так можно организовать дистанционное обучение - некие уроки, которые будут доступны только всем пользователям приложения. А может быть это некая онлайн-игра, где команда может таким образом из любой точки интернет доступа (из своего приложения, конечно) определить новые задачи (прочитав их в этом файле, или на этой странице). А может быть это некая коммерчески важная информация, для служебного пользования, может это страница специальных указаний для сотрудников, поручения для своего брокера, для... А может быть там лежит активационный код для проги... Короче, был бы инструмент, применить его всегда фантазии хватит!
Не, если бы мы играли в Бонда, то писали бы так: 0JTQsCDQt9C00YDQsNCy0YHRgtCy0YPQtdGCIE5lb0Jvb2shISEgOik= (использован алгоритм Base64, на этот раз - без ключа )
Дата: Вс, 20 Сентября 2009, 23:41 | Сообщение # 29
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (sp3d)
нет не вкуриваю, зачем хранить файлы на сервере да еще и шифровать, если они не предназначены для показа?! что мешает хранить на диске.
вот зачем:
Quote (DEMBEL)
Смысл в том чтобы делать секретные форматированные документы и хранить их удаленно. Если распространять их вместе с приложением, т.е. хранить локально, то риск их взлома возрастает, сам понимаешь.
Quote (sp3d)
Я понимаю зашифровать хтмл чтоб опенсурс не видеть в браузере по клику "код хтмл", а так
Исходный код зашифрованной страницы виден и не будет, вернее ее КОНТЕНТ - он же зашифрован, третий раз тебе говорю. А расшифровываться будет в приложении.
Quote (sp3d)
а когда через 2 недели затестил гугл его вытянул правдо сайт был в базе поисковика, но на то он и сайт
Ну, как ты сам указал, это не проблема.
--- Вот для примера я залил на сервер (ну это маленько не то, но суть возможностей приоткрывает) - смотрим эту страничку. Да хоть ты обосрись и лопни, но исходный контент ты не прочитаешь пока не введешь пароль. В исходнике помимо шифрованного контента - только скрипт дешифрации и шифрованный хэш пароля, а когда это будет реализовано в приложении, то и этого не будет видно. Алгоритм - RSA, так что сам понимаешь шансов у тебя взломать мало.
Дата: Вс, 20 Сентября 2009, 23:52 | Сообщение # 30
Генератор идей
Модераторы
Сообщений: 3173
Offline
На всякий случай (если кто будет использовать MD5 для хэширования паролей), справка:
Code
Многие системы используют базу данных для хранения паролей и существует несколько способов для хранения паролей. 1. Пароли хранятся как есть. При взломе такой базы все пароли станут известны. 2. Хранятся только хеши паролей (с помощью MD5, SHA). Найти пароли можно только полным перебором. Но сейчас такая задача решается за доли секунды. Пароль из таблицы был найден всего за 0,036059 сек.[12] 3. Хранятся хеши паролей и несколько случайных символов. К каждому паролю добавляется несколько случайных символов (их ещё называют «salt» или «соль») и результат ещё раз хешируется. Например, md5(md5(pass)+word). Найти пароль с помощью таблиц таким методом не получится.
Пример базы данных способ id login password 1 5 anton mydata 2 5 anton 69380a4489890f8a53e0eddc36cd1379 3 5 anton md5(md5(mydata)+word) и word