したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

プログラミングについて話すスレ

26さむらい鼠:2004/06/13(日) 14:22
var
pTable: PChar; //テーブルへのポインタ

//Sendパケをエンコードする関数。
//num:何枚目のテーブルを使うかを指定する。
//key:暗号キー
//buff1:バッファ
//buff2:バッファ
//len:バッファの長さ
function EncodeSendPacket(num :Integer; key :Char; var buff1 :PChar;
            var buff2 :PChar; len :Integer):Char;
var
  i :Integer;
  tmp :Integer;
begin
  for i := 0 to len - 1 do
  begin
    tmp := ord(key) and 7;
    if (ord(key) and (1 shl tmp)) <> 0 then begin
      buff2[i] := Char(ord(buff1[i]) xor ord(key));
      key := buff2[i];
      buff2[i] := pTable[num * 256 + ord(buff2[i])];
      continue;
    end;

    tmp := ord(key) and 3;
    if (ord(key) and (1 shl tmp)) <> 0 then begin
      buff2[i] := Char(ord(buff1[i]) + ord(key));
      key := buff2[i];
      buff2[i] := pTable[num * 256 + ord(buff2[i])];
      continue;
    end;

    buff2[i] := Char(ord(buff1[i]) - ord(key));
    key := buff2[i];
    buff2[i] := pTable[num * 256 + ord(buff2[i])];
  end;
  result := key;
end;


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板