Шифрування текстових файлів

Мені потрібно спочатку якось закодувати текст а потім щоб Моя прога при запуску запускала закодировочный текст(*.txt) і розкодувала а при завершенні знову кодувала(Н так!)

>>потрібно спочатку якось закодувати текстякщо "хто" ---xor

Ну, нормальне бажання.

Ось саме дайте, будь ласка, найпростіший приклад для закодування та розкодування тексту. Заздалегідь Вдячний

a --- повідомлення; b --- секретний ключ (за довжиною дорівнює а); з --- результат шифрування;

S[I]: = S[I] + 1; Простіше цього дуже складно

> a --- повідомлення; > b --- секретний ключ (по довжині дорівнює а); > з --- результат шифрування; > > з: = a xor b; > > шифр не "ламається" :)> S[I]: = S[I] + 1; > Простіше цього дуже складно

Чи не могли б ви обидва детальніше пояснити, як це все реалізувати? (Тобто напишіть процедуру повністю, якщо не важко).

sagchat1 (21.04.03 18:25)

Як Делфі запускати, сподіваюся, знаєте? :)

function Crypt_for_sagchat1(const aData, aKey: string): string; var strLen, datLen: integer;

begin strLen := Length(aData); if (strLen = 0) or (Length(aKey) <> strLen) then exit;

SetLength(result, strLen); for datLen := 1 to Length(aData) do result[datLen] := chr(ord(aData[datLen]) xor ord(aKey[datLen]))); end;

Тобі потрібно подивитися книжки для початківців, як робити цикли, як відкривати файли, а не шифрувати, рано поки.

procedure TCryptSonic.EncClick(Sender: TObject); //Кодування begin pkoder.Position:=0;//ProgressBar1 pdekoder.Position:=100;//ProgressBar2 operatdec.Visible:=False;//Panel lis .Caption:=(" ");//Label1 openf.Text:=(" ");//Label2 lin.Caption:=(" ");//Label3 savef.Text:=(" ");//Label4

if Openorig.Execute then begin FName:=Openorig.Filename; AssignFile(F1, Openorig.Filename); Reset(F1); Savecoding.FileName:=FName; якщо Savecoding.Execute then begin AssignFile(F2, Savecoding.Filename+".zcf"); //Присвоєння розширення вихідного файлу Rewrite(F2); repeat якщо немає Eof(F1) do begin lis.Caption:=("Кодую файл:"); openf.Text:=(Savecoding.Filename); lin.Caption:=("в"); savef.Text:=(Openorig.FileName); Tkoder.Enabled:=true; Read(F1, Ch); Pkoder.Position:=Pkoder.Position+1; if Pkoder.Position = size then lis.Caption:=("Кодування завершено"); k:=255-ord(Ch); Ch :=chr(k); Write(F2, Ch); end; until (NumRead = 0) або (NumWritten <> NumRead); CloseFile(F2); end; CloseFile(F1); end; end; Коротше, тут імена моїх змінних, як я їх обзивав у прозі. а ти сам уже обзивай змінні як тобі більше подобається, до речі формула, яка тут написана. тільки перша з величезної кількості операцій, що виконуються цією процедурою. :)

function coder(sor,key:string):string; var a,b:integer; res:string; begin b:=1; res:=""; for a:=1 to length(sor) do begin res:=res+chr(ord(sor[a]) xor ord(key[b])); inc(b); if b>length(key) then b:=1; end; result:=res; end;

Хлопці, ну ви своїми відповідями хлопчикові зовсім голову закрутите. По-моєму можна було на відповіді Anatoly Podgoretsky і закінчити обговорення цього питання.

> evvcom ти не правий! цей форум якраз і створений для початківців

До речі Anatoly Podgoretsky з одного боку те ж не має рації! Коли то й він не знав як зашифрувати текст! І напевно зараз не знає!раз допомогти кодом не може, а на всіх гілках радить почитати книги!

Ми навпаки маємо допомагати новачкам! Колись ми й самі ставили такі питання.

> sagchat Ось тобі один дуже непоганий сайт за функціями DELPHI, там сподіваюся ти знайдеш безліч відповідей на свої запитання: http://delphibase.endimus.com

> Spartak Може і не прав я, але треба в такому разі питання нормально ставити. Якщо не знає як зашифрувати – це одне питання, якщо не вміє працювати з файлами – це інше питання. Якщо не знає який алгоритм вибрати для шифрування - це вже третє питання, хоча начебто дуже близьке до першого, але не воно. Я спочатку по заголовку подумав, запропоную зараз скористатися загальнодоступними вихідними кодами pgp, а почитав, виявляється навіть c:=a xor b - не зрозуміло. Тоді що нам варто викласти сюди буквар по Дельфі чи що?

І де до речі написано, що форум для початківців?