![]() |
|
|
![]()
|
|
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Перенимаю опыт.
Мне в приложении нужно хранить во время работы, записывать в файл и считывать из файла много "блоков" информации. Я решил эту проблему так:
И далее работаю с вектором. Сохраняю данные в цикле в ini файл со своим расширением. Естественно, это не практично и не безопасно: "умный" пользователь может открыть файл блокнотом и нагадить там. Как вы работаете с информацией и файлами в таких случаях? Спасибо всем за участие! -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 13 Всего: 191 |
Криптуем данные
|
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Rrader, выложи ссылки по этой теме, если не тяжело.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 13 Всего: 191 |
http://www.ssl.stu.neva.ru/psw/crypto/appl_rus/appl_cryp.htm
Добавлено через 2 минуты и 25 секунд http://www.cyberguru.ru/cpp-sources/algori...etodom-xor.html |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Rrader, спасибо. xor'ом я пользовался уже. А, вообще, криптография это не совсем то, что я имел ввиду (но всё равно полезно). Я имею ввиду, как можно сохранять файлы с большим количеством информации компактно и надёжно (недоступно для пользователя).
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 13 Всего: 191 |
Можешь использовать zlib для сжатия. Очень удобно.
|
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| orthrus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 30.10.2007 Где: г. Усть-Илимск(Ир кутская обл.) Репутация: 4 Всего: 16 |
Может тебе тут лучше использовать локальную БД(например SQLite или Firebird Embedded), и структура файла там чуток сложнее чем в ini файле, тем более что нужно
-------------------- У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой ![]() |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Сжатый или криптованный файл пользователь тоже может открыть в блокноте и нагадить там. Другое дело, что он не сможет нагадить осмысленно
Использовать БД думаю наиболее оптимально. Вдруг в дальнейшем понадобится совершать поиск по этим данным - СУБД в этом поможет. Чтоб юзер не мог править файл, записанный твоей прогой можно попробовать сдлеать так: создаешь пользователя с паролем. Запускаешь свою прогу от его имени (можно прописать в ярлыке). Прога пишет свои файлы в папку документов этого пользователя. А другой пользователь их прочесть не может, т.к. Windows не даст зайти в эту папку. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Запиши данные в файловый стрим (имя файла в виде "qqq:mydata"), пользователь увидит только файл qqq нулевой длинны. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Я о том же.
Вот это интересно, правда непонятно. xvr, объясни плиз. Если можно на конкретном примере. Пробовал с помощью функций fread и fwrite записывать структуру в файл поблоково. Но почему-то они не хотят рабоать с AnsiString, а char меня не устраивает. Как быть? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| xvr |
|
||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
MSDN: A Programmer's Perspective on NTFS 2000 Part 1: Stream and Hard Link
Запись:
Чтение:
|
||||||||||
|
|||||||||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
А как затестить рабочесть этой технологии стандартными средствами винды, т.е. блокнот там, консоль. Чтобы не пришлось писать на WinApi ?
|
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
FAR кажется понимает альтернативные потоки и может их читать -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
Во че нашел http://www.securitylab.ru/analytics/216379.php
|
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Открываешь консоль (cmd.exe) и набираешь:
В папке после этого остается файл test нулевой длинны, в котором есть поток tst с текстом some test Так же можно в FAR'е нажать Shift-F4, в открывшемся имени файла для редактирования набрать test:tst и написать туда что хочешь. Смотреть аналогично (снова через Shift-F4) |
||||
|
|||||
| SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
Спс. Заметил, что огромное количество графических файлов имеют подобные потоки. Походу дела эскизы. А некоторые файлы имеют Zone.Identifier:
В общем неплохой способ запихнуть туда какую-нибудь контрольную сумму файла или комментарий. Если копировать файл по винту, то инфа тоже копируется, но если файл сжать любым пакером, то инфа теряется. Ну и из минусов - пашет только на NTFSе. Вот еще интересная штука:
Это сообщение отредактировал(а) SABROG - 13.5.2008, 12:46 |
||||
|
|||||
| artsb |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Это мне не подходит :( Я использую структуру:
Записываю и считываю так:
Числа записываются и считываются нормально. А вот строки не хотят. Это сообщение отредактировал(а) artsb - 13.5.2008, 16:27 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
||||||||||
|
|||||||||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
|
||||
|
|||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
а что это изменит? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 3 Всего: 91 |
Это ответ на твой вопрос о том, чтобы юзеры шаловливыми ручками не меняли настройки программы. При желании можно даже файла не создавать, обычная директорию тоже имеет альтернативные потоки. Только при этой технологии твоя программа больше нигде не будет корректно работать кроме как на файловой системе NTFS. Имхо лучше шифрануть файлик паролем юзера, расшифровываться будет на-лету. Если пароль не верный - не верно расшифруется и настройки будут битыми, вернее будет мусор. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
А. Понятно. Спасибо.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |