"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como gerar hashes SHA256 com OpenSSL e C++?

Como gerar hashes SHA256 com OpenSSL e C++?

Publicado em 2024-11-08
Navegar:174

How to Generate SHA256 Hashes with OpenSSL and C  ?

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.

Tutorial mais recente Mais>

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