Gerando hashes SHA256 com OpenSSL e C
Hashing é uma técnica criptográfica usada para gerar uma impressão digital exclusiva, ou resumo, de dados. No caso do SHA256 (Secure Hash Algorithm 2, 256-bit), esse resumo é uma string hexadecimal de 256 bits. SHA256 é comumente usado para verificar a integridade de dados, verificar assinaturas digitais e armazenar senhas com segurança.
Neste artigo, veremos como gerar hashes SHA256 usando a biblioteca OpenSSL e o código C.
Incluir cabeçalhos OpenSSL
Para começar, certifique-se de ter os cabeçalhos OpenSSL disponíveis para seu compilador C. Normalmente, você pode usar a seguinte instrução include:
#include
Criar o contexto SHA256
A seguir, precisamos criar um contexto SHA256 para inicializar o processo de hash. Podemos fazer isso com o seguinte código:
SHA256_CTX context;
SHA256_Init(&context);
Atualizar o contexto SHA256 com dados
Para gerar um hash, precisamos alimentar os dados a serem hash no contexto SHA256. Podemos fazer isso em partes usando a função SHA256_Update():
SHA256_Update(&context, data, data_length);
Finalize the Hash
Depois que todos os dados foram alimentados no contexto SHA256, podemos finalizar o hash usando a função SHA256_Final():
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_Final(hash, &context);
O hash resultante agora é armazenado na matriz de hash.
Converter para uma string hexadecimal
Finalmente, nós precisa converter o hash binário em uma string hexadecimal legível por humanos:
char hex_hash[65];
for (int i = 0; i x", hash[i]);
}
hex_hash[64] = 0;
Exemplo de uso
Agora que temos nossas funções instaladas, podemos usá-las para gerar hashes SHA256 conforme necessário. Por exemplo:
// Generate a hash for a string
char hash_string[65];
SHA256_string("Hello, world!", hash_string);
// Generate a hash for a file
char hash_file[65];
SHA256_file("path/to/file", hash_file);
Isso irá gerar um hash SHA256 para a string ou arquivo fornecido e armazená-lo no buffer correspondente.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3