Мобильная версия форумов
Открыть
 −20°C
завтра: −4°C
Погода в Перми
−20°C
вечером−10°C
ночью−10°C
завтра−4°C
Подробно
 66,20
−0.0448
Курс USD ЦБ РФна 20 февраля
66,2022
−0.0448
 74,82
−0.0904
Курс EUR ЦБ РФна 20 февраля
74,8151
−0.0904
  • Анонимный пользователь
    А вот код программы на TP, сделав отладку, и не могу найти ошибку, постоянно чио-то вылезает:


    // Коментарии
    // при компиляции комментарии убрать
    const strPwd:string='HGSDYGDSLWREIUCJD938439402342'; //ключ

    a:array[1..3,1..16] of integer =(
    (133,181,139,46,147,183,62,82,76,53,124,65,154,223 ,219,237), // номера зашифрованных файлов в шопе они выглядят так :|133|181|139.... (132,176,134,43,148,183,60,83,75,55,120,67,155,208 ,208,231),
    (130,181,140,45,148,182,58,82,76,48,118,71,153,216 ,210,0));

    // сам код раскриптовки

    var
    x,y,l,i,j,k:integer;
    sbox,rc4key:array[0..255] of integer;

    Procedure Init;
    Begin
    x:=0; y:=0;
    for i:=0 to 255 do
    begin
    sbox[i]:=i;
    rc4key[i]:=ord(strPwd[(i mod length(strPwd))+1]);
    end;

    k:=0;
    for i:=0 to 255 do
    begin
    k:=(k+sbox[i]+rc4key[i]) mod 256;
    j:=sbox[i];
    sbox[i]:=sbox[k];
    sbox[k]:=j;
    end;

    End;

    begin
    writeln;writeln;writeln;writeln;writeln;writeln;

    FOR l:=1 to 3 do
    Begin
    Init;
    WriteLn;

    for i:=1 to 16 do
    Begin
    x:=(x+1) mod 256;
    y:=(y+sbox[x]) mod 256;
    k:=sbox[x];sbox[x]:=sbox[y];sbox[y]:=k;
    j:=(sbox[x]+sbox[y]) mod 256;
    write(chr(a[l,i] xor sbox[j]));
    End;
    End;

  • veteran

    Сообщений: 1583

    В ответ на: А вот код программы на TP, сделав отладку, и не могу найти ошибку, постоянно чио-то вылезает:
    Чиго вылезает то? На стадии компиляции? Или комплируется нормально, но ведет прога себя неадекватно?

  • veteran

    Сообщений: 1583

    Не пожалел времени, вставил код в Дельфи.

    У тебя матрица (двумерный массив) a имеет размерность по декларации 3x16, по значениям инициализации 2x16. Конечно ругаться будет. Надо в таком случае:
    В ответ на: a:array[1..2,1..16] of integer =(
    Дальше не полез, вроде прога запускается и чего-то выводит.

  • veteran

    Сообщений: 1347

    Я тоже не поленился и вставил в TP:улыб:

    То что написано, работать не может так имеется нестыковка типов.
    Например присвоение
    sbox:=i
    где первое массив, второе - целое.

    Ну и там также дальше.

Записей на странице:

Перейти в форум

Модератор: