![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Правильное сохранение зашифрованного файла [D7, XP]
St74 © (2005-12-22 18:37:00)Уважаемые Гуру!
Недавно наткнулся в данной ветке на тему шифрования данных
http://kladovka.net.ru/delphibase/?action=viewfunc&topic=strcode&id=10090
{ **** UBPFD *********** by kladovka.net.ru ****
>> Шифрование и дешифрование текстов по принципу S-Coder со скрытым ключом
После прменения выполнения функции Encrypt с входным исходным текстом, результат будет иметь символы в диапазоне от 0 - 255 в ASCII таблице, следовательно если вам надо сохранить где либо шифровку, то лучше преобразовать в числовой вид - 16разрядный hex из ASCII таблицы (функция Write)} ->>> так вот такой вопрос:
Так вот как мне выполнить в моём коде, выше указанное сохранение шифровки?
...
var
f: TextFile; // файл
fName: string[80]; // имя файла
i: integer;
begin
if not SaveDialog1.Execute then { пользователь закрыл диалог
щелчком на кнопе Отмена }
exit;
fName := SaveDialog1.FileName;
AssignFile(f, fName);
rewrite(f); // открыть для добавления
// запись в файл
for i := 0 to RxRichEdit2.Lines.Count do // строки нумеруются с нуля
Writeln(f, RxRichEdit2.Lines[i]);
try
CloseFile(f); // закрыть файл
except
on EInOutError do
begin
ShowMessage('Ошибка записи в фаил.' +
fName);
exit;
end;
end;
MessageDlg('Зашифрованные данные сохранены в файл ', mtInformation, [mbOk],0);
end;
...
Вот при таком раскладе, сохранение выполняется корректно, но при последующем открытии
и загрузке шифровки в RxRichEdit, и применении функции Decrypt {Дешифрования}
не происходит обратного преобразования в исходный текст.
Приложение ругается так: {Неверное целое значение: '$B'}
Как я думаю что при сохранении шифровки из RxRichEdit2 в фаил, происходить добавление
лишних символов в конце шифровки, т.е пробела.
С Уважением к вам St74! ;-)
St74 (2005-12-23 08:30:00) [1]umbra © (22.12.05 20:56) [4]
Спасибо, но мне и грузить пришлось с LoadToFile. :)
umbra (2005-12-22 20:56:00) [2]
begin
if not SaveDialog1.Execute then { пользователь закрыл диалог
щелчком на кнопе Отмена }
exit;
RxRichEdit2.LinesSaveToFile(SaveDialog1.FileName);
MessageDlg('Зашифрованные данные сохранены в файл ', mtInformation, [mbOk],0);
end;
St74 (2005-12-22 20:45:00) [3]У кого ещё есть какие предложения! Жду ответа.
St74! ;)
St74 (2005-12-22 19:31:00) [4]При использовании Write выходит ошибка...
[Error] S_Coder.pas(371): Incompatible types: 'String' and 'Text'
St74! :(
umbra (2005-12-22 18:55:00) [5]
> Writeln(f, RxRichEdit2.Lines[i]);
при выводе в файлWritelnдобавляет к каждой строке два символа ($D$A), что может влиять на расшифровку. Пользуйтесь Write