Página 1 de 3
MD5
Enviado: 04 Fev 2007 10:16
por Maligno
Adaptei para o Clipper um programa para cálculo do MD5 de strings e arquivos. Já está disponível para
download.
Não é um simples objeto. Além dos fontes, segue junto uma LIB em que consta o objeto da função de cálculo e mais um grupo de funções que são pre-requisitos para o compilador C que eu usei. Pra usar a função de cálculo, é só acrescentar a LIB no script do linker. Não tem erro.
Sintaxe da função:
MD5Calc(<xSource>)
onde o argumento xSource tanto pode ser uma string como a alça de um arquivo previamente aberto. No fonte do demo a forma de uso é bem clara. Ler o README.TXT também ajuda.
[]'s
Maligno
http://www.buzinello.com/prg
Nota de Moderação:por
Pablo César: URL reditada para possibilitar download do novo endereço do MDE5.ZIP no site do Maligno
Enviado: 04 Fev 2007 15:28
por And
Te devo mais uma! :)Pos
:{
Abraço,
Re: Obrigado...
Enviado: 25 Mai 2007 16:04
por Maligno
neonormal escreveu:Salvou a semana...
Valeu cara...
Dinada.

E seja bem-vindo ao grupo.
[]'s
Maligno
http://www.buzinello.com/prg
Enviado: 26 Mai 2007 00:41
por carlos_dornelas
Maligno, me desculpe a ignorância, mas para que serve exatamente o MD5? Para confirmar a integridade de um DBF, por exemplo?
Antonio Carlos
Enviado: 26 Mai 2007 09:53
por Eolo
Diz que o MD5 (como criptografia) já foi quebrado, e tem "coisa" mais nova (ainda intacta) na área, é verdade?
Enviado: 26 Mai 2007 11:03
por Maligno
carlos_dornelas escreveu:para que serve exatamente o MD5? Para confirmar a integridade de um DBF, por exemplo?
MD5 é o que se chama de algoritmo de
hash, e como todo
hash, serve como uma espécie de "impressão digital" de um conjunto de dados quaisquer. Você pode utilizá-lo para checar a integridade de arquivos.
Uma aplicação típica: o usuário cadastra seu
log-in no sistema e este armazena apenas o MD5 deste
log-in. Quando se logar novamente, o sistema apenas compara o MD5 armazenado com o MD5 deste
log-in. São diversas aplicações possíveis. Eu próprio uso MD5 para autenticar renegociação de contas num sistema financeiro que tenho. E uso CRC32 para comparação de listas de GETs no sistema e para
check de integridade de registros nos meus bancos de dados.
Enfim, um
hash como MD5, CRC32, SHA1, etc pode ser utilizado para quaisquer tipos de "comparações" ou "certificações" que se precise. Aliás, no novo esquema de notas fiscais eletrônicas do Brasil, o governo determinou que os usuários devem autenticar os dados usando SHA1 na montagem do WebService para a transmissão da eNF.
[]'s
Maligno
http://www.buzinello.com/prg
Enviado: 26 Mai 2007 11:16
por Maligno
Eolo escreveu:Diz que o MD5 (como criptografia) já foi quebrado, e tem "coisa" mais nova (ainda intacta) na área, é verdade?
Para um algorítimo de
hash não existe o termo "quebrado". Aliás, se fosse possível "quebrar" de forma sistemática um
hash, significa que teríamos uma "fórmula" para essa quebra. Com uma fórmula assim, este seria, certamente, o melhor compactador de todos os tempos, pois bastaria calcular o hash de um arquivo de 10 GB, digamos; obter seus 32 bytes (conforme o
hash usado) e depois, usar tal fórmula para reverter o
hash e obter o arquivo original. Seria uma maravilha.

))
Mas isso não existe. Em termos de
hash não se usa o termo "quebra", mas sim "resistência". A cada vez que alguém cria um
hash, surge um grupo que tenta atacá-lo por cripto-análise. O ataque, neste caso, é no bom sentido. É preciso provar que o algoritmo é bom mesmo. E neste ataque tenta-se encontrar uma "colisão", que nada mais é que um conjunto de dados que equivale ao
hash sendo atacado. Quanto mais resistente à colisão, tanto melhor será o hash. É claro que sempre pode-se fazer um ataque por "força bruta" (tentativa e erro). Tenho um programa muito bom pra isso.
Já conseguiram criar técnicas para reverter o
hash criado pelo MD5 e assim, criar strings que colidem com os dados de entrada. Apesar disso, ele ainda é muito utilizado, já que é considerado suficientemente seguro para algumas aplicações. Mas ele já não é mais recomendado para quem precisa de segurança extrema. Nestes casos, normalmente se usa algum outro
hash, como SHA1 ou SHA2. Este último tem vários tamanhos (máx=512 bits). São bem mais seguros. Por enquanto.
[]'s
Maligno
http://www.buzinello.com/prg
Enviado: 26 Mai 2007 11:28
por Eolo
Carlos Donelas,
Sò como "comparação", imagina o seguinte:
- o CPF com seus dígitos de verificação (DV)
- um Arquivo com o seu HASH
Toda vez que vc calcular os DV de um CPF, vai dar sempre o mesmo resultado, certo? No HASH, é a mesma coisa: um mesmo arquivo vai dar sempre o mesmo resultado hash.
Se eu lhe mandar um CD inteiro via MSN, como saber se a transmissão foi toda OK? Bom, eu calculo o HASH dele aqui e lhe mando, junto com os dados do CD. Depois do download, vc calcula o HASH aí e compara com o que eu mandei: se deu o mesmo resultado hash, o download foi feito corretamente.
Enviado: 26 Mai 2007 11:32
por Eolo
Maligno,
Ops, eu pra variar usando termo errado... Pensei em colisão e falei "quebrado". Ainda bem que não falei "quebração"...

Enviado: 26 Mai 2007 12:42
por carlos_dornelas
Valeu amigos!!
Este forum é mesmo uma preciosidade! Obrigado aos colegas pelos esclarecimentos.
[]s
Antonio Carlos
Enviado: 26 Mar 2008 00:28
por And
Maligno,
Recebi o e-mail abaixo:
-------------------------------------------------------------------------------------
Bom dia, Anderson
Me desculpe por importuna-lo.
Procurei por ajuda no forum e não visualizei nada sobre o assunto.
Você teve algum problema ao utilizar a lib MD5.LIB
Digo isto porque quando mando compilar aparece o erro "MD5Calc unresolved
external".
Não consigo identificar a função dentro da Lib.
Sds
Luiz Wagner Rodrigues dos Santos
Olimpo Informática
Tel : 55 27 8146-2233
55 27 3347-4111
-------------------------------------------------------------------------------------
Ps: Se puder dispensar alguns minutos de atenção com o amigo eu ficaria muito grato.
Abraço,
Enviado: 26 Mar 2008 06:31
por Maligno
No dia 24 eu respondi uma MP que o Wagner havia me enviado. Informei o link para ele baixar a LIB. Até imaginei que tinha dado tudo certo.
Sendo este o erro, significa que o linker não encontrou a LIB. Então, de duas uma: ou ele configura o SET LIB para o caminho onde foi gravada a LIB ou ele apela e grava a LIB no diretório do programa. Não há mais o que fazer além disso, haja vista que esta LIB não tem dependências externas.
Enviado: 25 Abr 2008 19:10
por Grings
Maligno,
O link não está funcionando.
Enviado: 25 Abr 2008 19:38
por Maligno
Grings escreveu:Maligno,
O link não está funcionando.
Ah, sim. Eu usava aquele link há mais de ano. Agora agrupei esse tipo de arquivo em uma árvore de diretórios. Pegue a LIB
daqui.
Cálculo de MD5, como fazer em Clipper?
Enviado: 31 Ago 2010 09:27
por sambomb
Tenho uma função em xHarbour HB_MD5File() e HB_MD5(), e gostaria de utilizar essas com Clipper, é possível gerar um OBJ e linkar no sistema em Clipper ou existe alguma função que faça esse calculo?