|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Нужна помощь с определением алгоритма шифрования (продолжение)
Приветствую!
Из-за того, что тема "Нужна помощь с определением алгоритма шифрования" старая, ответить в ней не позволяют, поэтому создал новую. Прежде всего, большое спасибо Shaft и всем, кто принимал участие в расшифровке. Конкретно о проблеме: при использовании кода из вышеуказанной темы добрая половина строк в файле не обрабатывается. Также вообще не удается осуществить обратное кодирование. Очень надеюсь на любую помощь. Последний раз редактировалось nigh22, 08.12.2020 в 22:46. |
#2
|
|||
|
|||
Очень надеюсь на любую помощь.
|
#3
|
|||
|
|||
Код:
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. |