Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Шифрование


Автор: MacTep 1.11.2004, 17:22
Всем привет! Парни, подскажите. Вот есть такой код зашифровки какого-либо текста (в данном коде я шифрую только один символ):
Код
uses crt;
var ch:char;
   pass:string;
   tmp,k:integer;

begin
 clrscr;
 pass:='abc';
 tmp:=0;
 for k:=1 to length(pass) do
   tmp:=tmp+ord(pass[k]);
 randseed:=tmp;
 ch:='m';
 ch:=chr(ord(ch) xor random(256));
 writeln(ch);
 readkey;
end.

Как теперь расшифровать этот символ (а впоследствии я сделаю и весь текст), т.е. снова получить латинский символ 'm'. Не знаю, подскажите, пожалуйста! :)

Автор: Girder 1.11.2004, 17:43
В твоем случаи ни как... :) (если ты конечно не запоминаеш Random(256))

А вообще...
xx:=123;
ch:=v xor XX; //шифруеш... :)
v:=ch xor XX; //расшифровываеш... :)

Удачи.

Автор: MacTep 1.11.2004, 21:00
Просто мне надо сделать такую штуку: вход в программу защитить паролем. А пароль я хочу хранить в ini-файле. Потом его просто расшифровывать при помощи той строки, типа, 'abc', как в примере написал. А вот как расшифровать после такой кодировки, сам не знаю. Может кто-то поскажет какую-нибудь альтернативную идею по этому поводу?

Автор: Pakshin A. S. 1.11.2004, 22:18
убери ты этот Random, а вместо него любое число подставь (константу)!!!

Код

function CodeDeCodeString(const s:string):string;
var
Code_const = 2005; // Скоро новый год...
var
   c:char;
   i:itneger;
begin
  Result:='';
  for i:=1 to Length(s) do
   begin
    c:=s[i];
    Result:=Result + chr(ord(c) xor Code_const)
   end
end;

Автор: MacTep 1.11.2004, 22:36
И тогда я буду расшифровывать, как посоветовал Girder?

Автор: Pakshin A. S. 1.11.2004, 22:43
Эта функция и шифрует и расшифрует!!! Просто пользуйся!

Автор: MacTep 2.11.2004, 23:53
Я все понял! Спасибо! Уже решил эту проблему! Все окейно! :)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)