![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение настроек приложения в файле. [D6, 2000]
pathfinder © (2006-09-04 19:31:00)Добрый вечер. Уважаемые участники форума, подскажите пожалуйста, как наиболее грамотно решить следущую задачу: необходимо сохранять настройки приложения в файле который имел бы формат недоступный для пользователя.
Ини файл в данном случае отпадает, да и реестр пожалуй тоже.
pathfinder (2006-09-05 00:20:00) [1]Спасибо Всем за помощь!
pathfinder (2006-09-05 00:02:00) [2]Методом проб и ошибок пришел примерно к такому:
function TForm1.CoDec(Value : string): string;
var S_In,
S_Out,
S_Itm :string;
i:integer;
begin
S_In:=Value;
for i:=1 to Length(S_In) do
begin
S_Itm:=Chr(Ord(S_In[i]) xor Ord('A'));
S_Out:=S_Out+S_Itm;
end;
Result:=S_Out;
end;
Вроде даже работает:)
Palladin (2006-09-04 23:42:00) [3]
> [20] pathfinder
ну поразмысли над [9]
Loginov Dmitry (2006-09-04 23:01:00) [4]> pathfinder (04.09.06 22:59) [20]
Все в кучу ;))
pathfinder (2006-09-04 22:59:00) [5]Полдела вроде сделал:
for i := 1 to Length(S1) do
begin
S:=inttostr(ord(S1[i]) xor $FF);
S2:=S2+S;
end;
Только как теперь это расшифровать?
Anatoly Podgoretsky (2006-09-04 21:47:00) [6]pathfinder (04.09.06 21:16) [14]
Поправка №2 - "недоступный для понимания среднестатистического пользователя".
Ломать не строить
pathfinder (2006-09-04 21:26:00) [7]>Virgo_Style © (04.09.06 21:20) [15]
>сферического, в вакууме.
> Среднестатистический пользователь ini-файл не откроет, у него такой >программы нет.
Наверное Вы правы. Но тем не менее хочется разобраться как это сделать. Думаю, что с помощью этого форума это получится:)
Loginov Dmitry (2006-09-04 21:25:00) [8]В [16] есть ошибки. Найдешь - ты хакер
;))
Loginov Dmitry (2006-09-04 21:24:00) [9][13]
Допустим, перед записью строки в инишку, шифруй ее xor-ом. Алгоритм очень простой:
for I := 1 to Length(S) do
S[I] := Ord(S[I]) xor $FF
При чтении из ини используй точно такой же код.
Можно так еще:
for I := 1 to Length(S1) do
S2[I] := IntToHex(Ord(S1[I]), 2);
Вариантов - масса.
Virgo_Style (2006-09-04 21:20:00) [10]сферического, в вакууме.
Среднестатистический пользователь ini-файл не откроет, у него такой программы нет.
pathfinder (2006-09-04 21:16:00) [11]>Anatoly Podgoretsky © (04.09.06 21:12) [12]
>Таких пользователей не существует.
>Что построил один человек, другой за всегда сломает.
Поправка №2 - "недоступный для понимания среднестатистического пользователя".
pathfinder (2006-09-04 21:15:00) [12]>Palladin © (04.09.06 20:39) [9]
>> [7] pathfinder
>это такие магические буквы, что
>((7 xor 5) xor 5)=7
что-то мне подсказывает, что эти магические буквы можно использовать для шифрования инишника..а Вы не могли бы привести более подробный примерчик? Допустим у нас есть инишник
[USER]
Parameter1=X
..
Anatoly Podgoretsky (2006-09-04 21:12:00) [13]Таких пользователей не существует.
Что построил один человек, другой за всегда сломает.
pathfinder (2006-09-04 21:08:00) [14]>Anatoly Podgoretsky © (04.09.06 21:05) [10]
>который имел бы формат недоступный для пользователя.
>
>Таких не существует.
Маленькая поправочка - "недоступный для понимания пользователя".
Anatoly Podgoretsky (2006-09-04 21:05:00) [15]который имел бы формат недоступный для пользователя.
Таких не существует.
Palladin (2006-09-04 20:39:00) [16]
> [7] pathfinder
это такие магические буквы, что
((7 xor 5) xor 5)=7
C@N (2006-09-04 20:34:00) [17]Шифровать инишки;) или придумать свой класс и его писать в файл )))
pathfinder (2006-09-04 20:22:00) [18]
> DprYg © (04.09.06 19:54) [4]
> Самое простое - xor
Это как?
palva (2006-09-04 20:20:00) [19]А разве бинарный формат нечитаем? Его можно открыть в блокноте, например.
Джо (2006-09-04 19:55:00) [20]> [3] pathfinder (04.09.06 19:45)
> Эта необходимость вызвана тем, что доступом к настройкам
> должны обладать не все пользователи. "Формат недоступный
> для пользователя" - "нечитабельный" файл, по карйней мере
> обычными средствами просмотра файлов. Вот:)
TFileStream, будет писать в бинарном формате. Или же BlockWrite, по желанию.