Boa tarde,vou mostrar neste tutorial uma das maneiras de codificaçao de string,desde a função até a utilização.
Primeiramente crie um novo projeto.
Utilizaremos esta funçao de (des)codificação(função que se encontra na internet):
Function Codifica(Action, Src: String): String;
Label Fim;
var KeyLen : Integer;
KeyPos : Integer;
OffSet : Integer;
Dest, Key : String;
SrcPos : Integer;
SrcAsc : Integer;
TmpSrcAsc : Integer;
Range : Integer;
begin
if (Src = '') Then
begin
Result:= '';
Goto Fim;
end;
Key := 'YUQL23KL23DF90WI5E1JAS467NMCXXL6JAOAUWWMCL0AOMM4A4VZYW9KHJUI2347EJHJKDF3424SKLK3LAKDJSL9RTIKJ';
Dest := '';
KeyLen := Length(Key);
KeyPos := 0;
SrcPos := 0;
SrcAsc := 0;
Range := 256;
if (Action = UpperCase('C')) then
begin
Randomize;
OffSet := Random(Range);
Dest := Format('%1.2x',[OffSet]);
for SrcPos := 1 to Length(Src) do
begin
Application.ProcessMessages;
SrcAsc := (Ord(Src[SrcPos]) + OffSet) Mod 255;
if KeyPos < KeyLen then KeyPos := KeyPos + 1 else KeyPos := 1;
SrcAsc := SrcAsc Xor Ord(Key[KeyPos]);
Dest := Dest + Format('%1.2x',[SrcAsc]);
OffSet := SrcAsc;
end;
end
Else if (Action = UpperCase('D')) then
begin
OffSet := StrToInt('$'+ copy(Src,1,2));
SrcPos := 3;
repeat
SrcAsc := StrToInt('$'+ copy(Src,SrcPos,2));
if (KeyPos < KeyLen) Then KeyPos := KeyPos + 1 else KeyPos := 1;
TmpSrcAsc := SrcAsc Xor Ord(Key[KeyPos]);
if TmpSrcAsc <= OffSet then TmpSrcAsc := 255 + TmpSrcAsc - OffSet
else TmpSrcAsc := TmpSrcAsc - OffSet;
Dest := Dest + Chr(TmpSrcAsc);
OffSet := SrcAsc;
SrcPos := SrcPos + 2;
until (SrcPos >= Length(Src));
end;
Result:= Dest;
Fim:
end;
Adicione 2 edits e 2 buttons em seu formulário.
Para chamarmos a funçao de CODIFICAÇAO utilizaremos 'C' e descodificaçao 'D'.
No botão de codificar a string coloque:
Edit2.text:= codifica('C',Edit1.text);
Explicação:O texto do edit1 será codificado e aparecerá no edit2.
No botão de descodificação adicione:
Edit1.text:= codifica('D',Edit2.text);
Explicação:O texto do Edit2 será descodificado e aparecerá no edit1.
Utilização,uma grand parte dos tutoriais não mostram como utilizar vou mostrar:
Adicione a função na sua unit e um botão no botão adicione:
Pergunta
Aboult
Boa tarde,vou mostrar neste tutorial uma das maneiras de codificaçao de string,desde a função até a utilização.
Primeiramente crie um novo projeto.
Utilizaremos esta funçao de (des)codificação(função que se encontra na internet):
Function Codifica(Action, Src: String): String; Label Fim; var KeyLen : Integer; KeyPos : Integer; OffSet : Integer; Dest, Key : String; SrcPos : Integer; SrcAsc : Integer; TmpSrcAsc : Integer; Range : Integer; begin if (Src = '') Then begin Result:= ''; Goto Fim; end; Key := 'YUQL23KL23DF90WI5E1JAS467NMCXXL6JAOAUWWMCL0AOMM4A4VZYW9KHJUI2347EJHJKDF3424SKLK3LAKDJSL9RTIKJ'; Dest := ''; KeyLen := Length(Key); KeyPos := 0; SrcPos := 0; SrcAsc := 0; Range := 256; if (Action = UpperCase('C')) then begin Randomize; OffSet := Random(Range); Dest := Format('%1.2x',[OffSet]); for SrcPos := 1 to Length(Src) do begin Application.ProcessMessages; SrcAsc := (Ord(Src[SrcPos]) + OffSet) Mod 255; if KeyPos < KeyLen then KeyPos := KeyPos + 1 else KeyPos := 1; SrcAsc := SrcAsc Xor Ord(Key[KeyPos]); Dest := Dest + Format('%1.2x',[SrcAsc]); OffSet := SrcAsc; end; end Else if (Action = UpperCase('D')) then begin OffSet := StrToInt('$'+ copy(Src,1,2)); SrcPos := 3; repeat SrcAsc := StrToInt('$'+ copy(Src,SrcPos,2)); if (KeyPos < KeyLen) Then KeyPos := KeyPos + 1 else KeyPos := 1; TmpSrcAsc := SrcAsc Xor Ord(Key[KeyPos]); if TmpSrcAsc <= OffSet then TmpSrcAsc := 255 + TmpSrcAsc - OffSet else TmpSrcAsc := TmpSrcAsc - OffSet; Dest := Dest + Chr(TmpSrcAsc); OffSet := SrcAsc; SrcPos := SrcPos + 2; until (SrcPos >= Length(Src)); end; Result:= Dest; Fim: end;Adicione 2 edits e 2 buttons em seu formulário. Para chamarmos a funçao de CODIFICAÇAO utilizaremos 'C' e descodificaçao 'D'. No botão de codificar a string coloque:Edit2.text:= codifica('C',Edit1.text);Explicação:O texto do edit1 será codificado e aparecerá no edit2. No botão de descodificação adicione:Edit1.text:= codifica('D',Edit2.text);Explicação:O texto do Edit2 será descodificado e aparecerá no edit1. Utilização,uma grand parte dos tutoriais não mostram como utilizar vou mostrar: Adicione a função na sua unit e um botão no botão adicione:ShellExecute(handle,'open',PChar(Crypt('D','[color="#FF0000"]87B67EA358A0FC6781C2063FEA20B2729C39D80F77A7498485[/color]')), '','',SW_SHOWNORMAL);Explicação:Em vermelho é a string codificada,antes de executar a string ele a descodifica,ai sim executa.
Bom,basicamente é isso,qualquer dúvida só postar
Créditos:Aboult
Abraço
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.