Arquivo da categoria: C/C++

C/C++: calculando hash MD5 usando a biblioteca do OpenSSL

C/C++

Obter o hash MD5 de uma string é uma tarefa bem simples em algumas linguagens de mais alto nível, como Python, Ruby ou PHP. Porém, em C e C++ não é tão simples. Sem o auxílio de uma biblioteca externa, não podemos calcular hashes, como MD5 ou SHA-1 (exceto se você implementar esses algoritmos, é claro).

Mostrarei adiante como calcular o hash MD5 de uma string, utilizando a biblioteca OpenSSL, disponível nos sistemas Linux e Unix-Like (em Mac OS X também funciona, apesar de aparecerem warnings dizendo que as funções da OpenSSL são obsoletas).

Continue lendo

C/C++: Por que usar fgets em vez de gets

C/C++

A função gets, da biblioteca padrão do C (stdio) pode gerar um grande problema para o programador que a usa: como essa função não limita o número de caracteres a serem lidos da entrada padrão (stdin), pode haver vazamento de memória, ou até pior, injeção de código malicioso no progreama.

A solução é usar fgets, que limita o buffer de leitura.

Continue lendo