Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с шифрованием.


lobach ©   (2006-11-23 12:31:00) 

Подскажите, где найти простой алгоритм шифрования строк. Очень простой. Нужно зашифровать строку, и записать ее в текст. файл, потом так-же прочитать и расшифровать.


lobach   (2006-11-23 20:16:00) [1]


> И откуда здесь появятся непечатные символы?

Так потому и буду пробовать, что все символы нормальные...


Anatoly Podgoretsky   (2006-11-23 13:48:00) [2]


> lobach ©   (23.11.06 13:26) [9]

И откуда здесь появятся непечатные символы?


Джо   (2006-11-23 13:37:00) [3]

function StrToHex (const Source: string): string;
var
 I: Integer;
 S: string;
begin
 SetLength (Result, Length(Source)*2);
 for I := 1 to Length(Source) do
 begin
   S := IntToHex(Ord(Source[I]),2);
   Result[I*2-1] := S[1];
   Result[I*2] := S[2]
 end;
end;

Обратно — так же тривиально.


Anatoly Podgoretsky   (2006-11-23 13:28:00) [4]

> lobach  (23.11.2006 13:11:07)  [7]

> В этом и моя проблема...

Могут и не присутствовать, но это не проблема, если выход в диапазоне 0..255 - то это не строка, если нужна строка, то преобразовывай в транспортную упаковку.


lobach   (2006-11-23 13:26:00) [5]

Щас так буду пробовать: Разобью строку на куски (по 2 знака) и буду их разворачивать
lobach=olabhc


Jeer   (2006-11-23 13:14:00) [6]


> lobach ©   (23.11.06 13:11) [7]


> В этом и моя проблема...


См. метод подстановки [3].


lobach   (2006-11-23 13:11:00) [7]


> в зашифрованной строке могут присутствовать коды не только
> печатых символов

В этом и моя проблема...


Pavor   (2006-11-23 13:09:00) [8]

Также попробуй "шифрование" с xor, который "исключающее ИЛИ",
проще уж некуда.

Идея:
for i:=1 to Length(Str) do
    Str[i]:=char(ord(Str) xor $FF);


При таком способе шифрования, однако, в зашифрованной строке могут присутствовать коды не только печатых символов.
Расшифровка: выполнить тот же самый код на зашифрованной строке.


TrainerOfDolphins   (2006-11-23 12:59:00) [9]

Может быть
   for i:=1 to Length(S_old) do
     S_new[i]:=char(ord(S_old[i])+h)
Где S_old[i]-исходная строка, S_new[i] - зашифрованная строка, h - смещение.
В данном виде вероятны грабли, но главное идея...


Amoeba   (2006-11-23 12:58:00) [10]

Скачай библиотеку QStrings (бесплатно, в исходниках, ее легко найдешь поисковиком). Содержит гигантское количество процедур и функций для работы со строками, в том числе и для их шифрования различными алгоритмами.


Jeer   (2006-11-23 12:50:00) [11]


> lobach ©   (23.11.06 12:31)


a..z == z..a


Сергей М.   (2006-11-23 12:45:00) [12]


> lobach ©   (23.11.06 12:31)


Каков же критерий "простоты" ?


Anatoly Podgoretsky   (2006-11-23 12:43:00) [13]

> lobach  (23.11.2006 12:31:00)  [0]

y = f(x)


Наверх

Титульная страница Поиск, карта сайта Написать письмо