Ir para conteúdo
Fórum Script Brasil
  • 0

Codificaçao de Strings


Aboult

Pergunta

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

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...