Ir em baixo
_Netrunner
_Netrunner

Mensagens : 156
Pontos : 564

Função MD5 Para seu Programa Empty Função MD5 Para seu Programa

em Sab 12 Jan 2013 - 8:06
Reputação da mensagem: 100% (2 votos)
Como funciona :

Primeiro você coloca os 2 Arquivos responsáveis pela conversão em MD5 :
Wcrypt2.pas, Wcrypt2.dcu na pasta que está o source do seu programa ( onde você salvou o projeto)

Depois :
Você adiciona o .pass na sua uses do seu formulário.

Exemplo :

Código:
var
  Form1: TForm1;

implementation

uses wcrypt2;


a uses wcrypt2 é que faz a conversão de texto para MD5, depois de adicionar a uses , vamos adicionar a FUNCTION :


Código:
uses wcrypt2;

{$R *.dfm}

//criar função MD5
//adicionando função Md5 no implementation do formulario.
function md5(const Input: String): String;
var
  hCryptProvider: HCRYPTPROV;
  hHash: HCRYPTHASH;
  bHash: array[0..$7f] of Byte;
  dwHashBytes: Cardinal;
  pbContent: PByte;
  i: Integer;

begin
  dwHashBytes := 16;
  pbContent := Pointer(PChar(Input));

  Result := '';

  if CryptAcquireContext(@hCryptProvider, nil, nil, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT or CRYPT_MACHINE_KEYSET) then
  begin
    if CryptCreateHash(hCryptProvider, CALG_MD5, 0, 0, @hHash) then
    begin
      if CryptHashData(hHash, pbContent, Length(Input) * sizeof(Char), 0) then
      begin
        if CryptGetHashParam(hHash, HP_HASHVAL, @bHash[0], @dwHashBytes, 0) then
        begin
          for i := 0 to dwHashBytes - 1 do
          begin
            Result := Result + Format('%.2x', [bHash[i]]);
          end;
        end;
      end;
      CryptDestroyHash(hHash);
    end;

    CryptReleaseContext(hCryptProvider, 0);
  end;

  Result := AnsiLowerCase(Result);
end;

//terminou função de MD5


Pronto! a função já foi adicionada no nosso projeto.
Agora vamos criar um breve programa para ver se está funcionando corretamente.

Adicione em seu formulario um :

2 Label (Palheta Standard)
1 Edit (Palheta Standard)
1 Memo (Palheta Standard)
1 Button (Palheta Standard)


Mude o Caption do 1° Label para : Digite um nome/frase :

Mude o Caption do 2° Label para : Em MD5 :

Mude o Nome do Edit para : texto

Mude o Nome do Memo para : Transformado
Clique na opção : Lines do Memo e apague o texto : Memo1

Mude o Caption do Button para : Transformar


Codigos :
Clique duas vezes sobre o button do seu formulário e adicione o codigo :
Código:
transformado.Lines.Text:= md5(texto.Text);

Explicação do Codigo :

O Valor do Transformado ( Memo ) Será igual ao valor do Texto(Edit) com a função MD5 adicionada na frente do Edit.


Imagem do Programa :
img21.imageshack.us/img21/6152/md5j.png[/color]

Download Exemplo :
4shared.com/rar/kO9RiISX/Exemplo_bgGames.html


Download Função :
4shared.com/rar/qjTFXF5l/Funo_MD5_bgGames.html


Scan Exemplo "Project1.exe" :
virustotal.com/file/a77570eeec9a06e850867dbb18bf608f1f704258422c7f99756268fd09d8ba4c/analysis/1357988376/


Infelizmente não teve como eu posta os links com o www e muito menos com o link da imagem de download e de scan por causa das permissão do fórum.

Créditos : _Netrunner
BGames
BGames

Mensagens : 1808
Pontos : 16497
Evolução : 100
Função MD5 Para seu Programa Reputation_highposFunção MD5 Para seu Programa Reputation_highposFunção MD5 Para seu Programa Reputation_highposFunção MD5 Para seu Programa Reputation_highposFunção MD5 Para seu Programa Reputation_highposFunção MD5 Para seu Programa Reputation_highposFunção MD5 Para seu Programa Reputation_highposFunção MD5 Para seu Programa Reputation_highposFunção MD5 Para seu Programa Reputation_highposFunção MD5 Para seu Programa Reputation_highpos

Função MD5 Para seu Programa Empty Re: Função MD5 Para seu Programa

em Sab 12 Jan 2013 - 8:56
Meu deus, um entendedor de Delphi!
Parabens ae, e, bem vindo!
_Netrunner
_Netrunner

Mensagens : 156
Pontos : 564

Função MD5 Para seu Programa Empty Re: Função MD5 Para seu Programa

em Sab 12 Jan 2013 - 8:57
Obrigado, gostei bastante do fórum , rsrs
Conteúdo patrocinado

Função MD5 Para seu Programa Empty Re: Função MD5 Para seu Programa

Voltar ao Topo
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum