Alguém tem algum exemplo do algoritmo MD5 para um microcontrolador (de preferência um de 8 bits)? Nosso projeto vai usar um dispositivo da série Microchip PIC18.
Alguém tem algum exemplo do algoritmo MD5 para um microcontrolador (de preferência um de 8 bits)? Nosso projeto vai usar um dispositivo da série Microchip PIC18.
Respostas:
Aqui está a implementação MD5 do EtherNut (baseado no AVR)
Eu continuaria com uma implementação respeitável conhecida do MD5 e ficaria longe das bibliotecas encontradas por fornecedores de terceiros. A RFC 1321 original, que descreveu o MD5, tem uma amostra de implementação C.
Lembrete: os pontos fracos conhecidos do MD5 são ataques de colisão, e não ataques de pré-imagem ; portanto, é adequado para alguns aplicativos criptográficos, mas não para outros. Se você não sabe a diferença, não deve usá-la, mas não a descarte por completo. Consulte http://www.vpnc.org/hash.html .
Você pode encontrar uma boa descrição e alguns pseudocódigos para a wikipedia do algoritmo MD5 em http://en.wikipedia.org/wiki/MD5
Você também pode postar esta pergunta no stackoverflow, pois ela é mais voltada para as questões de programação.
da página da wikipedia no MD5 :
... foi demonstrado que o MD5 não é resistente a colisões, portanto, o MD5 não é adequado para aplicativos como certificados SSL ou assinaturas digitais que dependem dessa propriedade.
e dos pesquisadores de SSL na mesma página:
Também esperamos que o uso do MD5 em outros aplicativos seja reconsiderado.
Eu entendo que você provavelmente não quer ouvir isso, mas você realmente precisa do MD5? Não deve ser usado para fins criptográficos, pois é muito inseguro (e há cargas de barcos de tabelas arco-íris disponíveis). Se você está procurando algo para validar apenas os dados, consulte o CRC (código aqui ), que é computacionalmente mais barato. Se você o estiver usando para fins criptográficos, posso sugerir a mudança para o SHA ? O único problema é que a maioria dos algoritmos criptograficamente seguros não funciona particularmente bem nos microcontroladores. Eu sei que pode parecer que o MD5 é "bom o suficiente", mas o caminho da engenharia é errar por precaução.