MD5 em Delphi 2010 - Parte I

Veja nesta Quick MD5 do Indy 10

Olá galera, nesta Quick Tips irei mostrar como podemos trabalhar com MD5 do Indy 10 do Delphi 2010. O MD5 (Message-Digest algorithm 5) é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security, e muito utilizado por softwares com protocolo ponto-a-ponto (P2P por exemplo) na verificação de integridade de arquivos e logins.

Os hashes MD5 de 128-bit (16-byte) são normalmente representados por uma sequência de 32 caracteres hexadecimais. Veja um exemplo:

WESLEY YAMAZACK BATISTA com a conversão temos o seguinte 8B9FFE2305DF759FB68E5E0D9BB77CEE

Inicialmente vou mostrar como criarmos a estrutura do MD5, em uma Unit, a fim de reaproveitarmos a mesma em outros projetos, evitando reescrever a rotina a todo o momento que for necessário.

Vamos ao Exemplo!

Crie uma nova Unit e salve com o nome uMD5, esta Unit não teremos uma classe mas apenas a implementação dos métodos evitando assim a necessidade de se criar um Objeto para podermos utilizar as funções. Mãos a Obra!

unit uMD5; interface uses IdHashMessageDigest, Classes, SysUtils; function MD5String(const Value: string): string; function MD5Arquivo(const Value: string): string; implementation {Função : MD5String(Const Value : String): String;

Objetivo : Esta função serve para retornarmos Hash de um String em Hexadecimal

Dicas de Uso :

  • Criptografar uma senha e salvar a mesma no banco
  • Validação de usuário com MD5 são seguras e precisas
  • Criptografar determinados dados ao serem enviados ao Banco
  • Criptografar todos os dados de uma determinada tabela

Modo de Usar : ShowMessage(MD5String(EdtSenha.Text)); } function MD5String(const Value: string): string; var xMD5: TIdHashMessageDigest5; begin xMD5 := TIdHashMessageDigest5.Create; try Result := xMD5.HashStringAsHex(Value); finally xMD5.Free; end; end;

{Função : MD5Arquivo(Const Value : String): String;

Objetivo : Esta função serve para retornarmos Hash de um Arquivo em Hexadecimal

Dicas de Uso :

  • Comparar o tamanho de dois arquivos
  • Verificar se eles têm a mesma estrutura

Modo de Usar : ShowMessage(MD5String(‘C:\Program Files\Embarcadero\RAD Studio\7.0\bin\_refactoring.log’)); }

function MD5Arquivo(const Value: string): string; var xMD5: TIdHashMessageDigest5; xArquivo: TFileStream; begin xMD5 := TIdHashMessageDigest5.Create; xArquivo := TFileStream.Create(Value, fmOpenRead OR fmShareDenyWrite); try Result := xMD5.HashStreamAsHex(xArquivo); finally xArquivo.Free; xMD5.Free; end; end; end.

Fico por aqui e na próxima Quick Tips, onde veremos como trabalharmos com logins

Um abraço

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados