Форум по Delphi программированию

 



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.11.2020, 05:51
nigh22 nigh22 вне форума
Прохожий
 
Регистрация: 29.11.2020
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию Нужна помощь с определением алгоритма шифрования (продолжение)

Приветствую!

Из-за того, что тема "Нужна помощь с определением алгоритма шифрования" старая, ответить в ней не позволяют, поэтому создал новую. Прежде всего, большое спасибо Shaft и всем, кто принимал участие в расшифровке.
Конкретно о проблеме: при использовании кода из вышеуказанной темы добрая половина строк в файле не обрабатывается. Также вообще не удается осуществить обратное кодирование.

Очень надеюсь на любую помощь.
Вложения
Тип файла: txt icon6@.txt (23.1 Кбайт, 0 просмотров)

Последний раз редактировалось nigh22, 08.12.2020 в 22:46.
Ответить с цитированием
  #2  
Старый 13.02.2021, 13:02
Ejkov Ejkov вне форума
Прохожий
 
Регистрация: 03.12.2020
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Очень надеюсь на любую помощь.
Ответить с цитированием
  #3  
Старый 14.03.2021, 15:25
Shaft Shaft вне форума
Новичок
 
Регистрация: 15.05.2013
Сообщения: 53
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Код:
function Encrypt_(s:string; EncodeTable:array of Integer):string;
var
  i,KeyL:Integer;
begin
  Result:='';
  KeyL:=0;
  for i:=1 to Length(s) do
  begin
    if KeyL>2 then KeyL:=0;
    Result:=Result+Char(Ord(s[i])+EncodeTable[KeyL]);
    Inc(KeyL);
  end;
end;

function Encrypt(s:string):string;
const Key1:array[0..2] of Integer=(1,2,0);
      Key2:array[0..2] of Integer=(2,3,1);
      Key3:array[0..2] of Integer=(3,4,2);
var
  ParsSTR,NumT:string;
begin
  Result:='';
  if Length(s)<4 then Exit;
  ParsSTR:=(Encrypt_(s,Key1));
  NumT:=Copy(ParsSTR,1,Pos('-',ParsSTR)-1);
  try
    StrToInt(NumT);
    Result:='"'+Trim(ParsSTR)+'"';
  except
    try
      ParsSTR:=(Encrypt_(s,Key2));
      NumT:=Copy(ParsSTR,1,Pos('-',ParsSTR)-1);
      StrToInt(NumT);
      Result:='"'+Trim(ParsSTR)+'"';
    except
      try
        ParsSTR:=(Encrypt_(s,Key3));
        NumT:=Copy(ParsSTR,1,Pos('-',ParsSTR)-1);
        StrToInt(NumT);
        Result:='"'+Trim(ParsSTR)+'"';
      except
        Result:='"Error: s1 '+s[1]+' s4 '+s[4]+'"';
      end;
    end;
  end;
end;

Файл загружается например в StringList и построчно в цикле обрабатывается

Код:
var
  i:Integer;
  s:string;
begin
  for i:=0 to sl.count-1 do
    s:=Encrypt(sl[i]);//s расшифрованная строка
end;

Последний раз редактировалось Shaft, 16.03.2021 в 19:06.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:08.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter