"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo generar hashes SHA256 con OpenSSL y C++?

¿Cómo generar hashes SHA256 con OpenSSL y C++?

Publicado el 2024-11-08
Navegar:470

How to Generate SHA256 Hashes with OpenSSL and C  ?

Generación de hashes SHA256 con OpenSSL y C

El hash es una técnica criptográfica que se utiliza para generar una huella digital única o un resumen de datos. En el caso de SHA256 (Secure Hash Algorithm 2, 256 bits), este resumen es una cadena hexadecimal de 256 bits. SHA256 se usa comúnmente para verificar la integridad de los datos, verificar firmas digitales y almacenar contraseñas de forma segura.

En este artículo, explicaremos cómo generar hashes SHA256 usando la biblioteca OpenSSL y el código C.

Incluir encabezados OpenSSL

Para comenzar, asegúrese de tener los encabezados OpenSSL disponibles para su compilador de C. Normalmente, puede utilizar la siguiente declaración de inclusión:

#include 

Crear el contexto SHA256

A continuación, necesitamos crear un contexto SHA256 para inicializar el proceso de hash. Podemos hacer esto con el siguiente código:

SHA256_CTX context;
SHA256_Init(&context);

Actualizar el contexto SHA256 con datos

Para generar un hash, debemos introducir los datos que se van a convertir en el contexto SHA256. Podemos hacer esto en fragmentos usando la función SHA256_Update():

SHA256_Update(&context, data, data_length);

Finalizar el hash

Una vez que todos los datos se han enviado al contexto SHA256, podemos finalizar el hash usando SHA256_Final() función:

unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_Final(hash, &context);

El hash resultante ahora se almacena en la matriz hash.

Convertir a una cadena hexadecimal

Finalmente, Es necesario convertir el hash binario en una cadena hexadecimal legible por humanos:

char hex_hash[65];
for (int i = 0; i x", hash[i]);
}
hex_hash[64] = 0;

Ejemplo de uso

Ahora que tenemos nuestras funciones implementadas, podemos usarlas para generar hashes SHA256 según sea necesario. Por ejemplo:

// 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);

Esto generará un hash SHA256 para la cadena o archivo dado y lo almacenará en el búfer correspondiente.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3