Показать сообщение отдельно
  #5  
Старый 20.03.2009, 22:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,105
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, для простоты сделай шифрование XOR'ом.

Код:
function Encode(AText, APass : String) : String;
var
  I : Integer;
  ALongPass : String;
begin
  If (Length(APass) < 5) Or (Length(APass) > 8) Then
     Raise Exception.Create('Пароль короче 5 или длиннее 8 символов.');
  Result := AText;

  // Для простоты делаем строку пароля кодирования
  // такой же длинны, что и данные. Просто копируя пароль.
  ALongPass := '';
  While Length(ALongPass) < Length(AText) Do
     ALongPass := ALongPass + APass;

  // А теперь шифруем XOR'ом
  For I := 1 To Length(AText) Do
    Result[i] := Chr(Ord(Result[i]) XOR Ord(ALongPass[i]));
end;
Ответить с цитированием