Ir para conteúdo
  • Cadastre-se

dev botao

Gerar MD5


Gr@c@
Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 2856 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Tente com o ACBrEAD, veja os exemplos no EADTeste.

function TACBrEAD.MD5FromFile(const APathArquivo: String): String;
begin
  Result := String(CalcularHashArquivo(APathArquivo, dgstMD5));
end;

function TACBrEAD.MD5FromString(const AString: String): String;
begin
  Result := String(CalcularHash(AnsiString(AString), dgstMD5));
end;

 

  • Curtir 1
Consultor SAC ACBr

Celso Marigo Junior

Conheça o Portal do Projeto ACBr
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores
  • Solution

Em Synacode.pas você tem ainda um método ainda mais simples... e que não depende de nenhuma DLL externa

{:Returns a binary string with a RSA-MD5 hashing of "Value" string.}
function MD5(const Value: AnsiString): AnsiString;  

 

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Fiz um teste comparativo entre as duas opções referenciadas aqui. o GetACBrEAD.MD5FromString tem ligeira vantagem de performance na geração do MD-5. Só estranhei o fato da string resultante de um ser diferente da string resultante do  outro. Independente do método escolhido, o resultado não deveria ser o mesmo?

Link para o comentário
Compartilhar em outros sites

Testei em uma function

FUNCTION Gerar_MD5_Registro(Tabela: TDataSet): AnsiString;
VAR
  NFields, i: Integer;
  buffer    : AnsiString;
BEGIN
  buffer  := '';
  NFields := Tabela.FieldCount - 1;

  FOR i   := 0 TO NFields DO
  BEGIN
    IF (LowerCase(Tabela.Fields.FieldName) <> 'chave') THEN
    BEGIN
      IF (NOT(Tabela.Fields.IsNull)) THEN
      BEGIN
        buffer := buffer + Tabela.Fields.AsString;
      END;
    END;
  END;

  Result := FormPrincipal.ACBrPAF1.GetACBrEAD.MD5FromString(buffer);
  //Result := MD5(buffer);
END;

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Provavelmente você está computando inclusive o campo com o HASH na segunda interação...

 MD5_1 := FormPrincipal.ACBrPAF1.GetACBrEAD.MD5FromString(buffer);
 MD5_2 := MD5(buffer);

Aqui, ambas variáveis devem conter o mesmo HASH

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Humm.. ele está retornando em binário...

É necessário converter para Hexadecimal ou Base64... Se não me engano, na ACBrUtil tem método de conversão para Hexa

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Realmente...

Curiouso ser mais rápido usando o EAD ( que usa o OpenSSL).

A implementação da Synapse é pascal puro...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Consultores
6 horas atrás, Daniel Simoes disse:

Realmente...

Curiouso ser mais rápido usando o EAD ( que usa o OpenSSL).

A implementação da Synapse é pascal puro...

Talvez a implementação da OpenSSL é otimizada.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2856 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.