Bagaimana untuk Menjana Hashes SHA256 dengan OpenSSL dan C?

Patricia Arquette
Lepaskan: 2024-10-27 01:19:30
asal
661 orang telah melayarinya

How to Generate SHA256 Hashes with OpenSSL and C  ?

Menjana Hash SHA256 dengan OpenSSL dan C

Hashing ialah teknik kriptografi yang digunakan untuk menjana cap jari yang unik, atau mencerna, data. Dalam kes SHA256 (Secure Hash Algorithm 2, 256-bit), ringkasan ini ialah rentetan heksadesimal 256-bit. SHA256 biasanya digunakan untuk menyemak integriti data, mengesahkan tandatangan digital dan menyimpan kata laluan dengan selamat.

Dalam artikel ini, kami akan membincangkan cara menjana cincang SHA256 menggunakan perpustakaan OpenSSL dan kod C.

Sertakan Pengepala OpenSSL

Untuk bermula, pastikan anda mempunyai pengepala OpenSSL tersedia untuk pengkompil C anda. Biasanya, anda boleh menggunakan pernyataan sertakan berikut:

<code class="cpp">#include <openssl/sha.h></code>
Salin selepas log masuk

Buat Konteks SHA256

Seterusnya, kita perlu mencipta konteks SHA256 untuk memulakan proses pencincangan. Kita boleh melakukannya dengan kod berikut:

<code class="cpp">SHA256_CTX context;
SHA256_Init(&context);</code>
Salin selepas log masuk

Kemas kini Konteks SHA256 dengan Data

Untuk menjana cincang, kami perlu menyuap data untuk dicincang ke dalam konteks SHA256. Kita boleh melakukan ini dalam ketulan menggunakan fungsi SHA256_Update():

<code class="cpp">SHA256_Update(&context, data, data_length);</code>
Salin selepas log masuk

Memuktamadkan Hash

Setelah semua data telah dimasukkan ke konteks SHA256, kami boleh memuktamadkan cincang menggunakan fungsi SHA256_Final():

<code class="cpp">unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_Final(hash, &context);</code>
Salin selepas log masuk

Cincang yang terhasil kini disimpan dalam tatasusunan cincang.

Tukar kepada Rentetan Heksadesimal

Akhir sekali, kita perlu menukar cincang binari kepada rentetan perenambelasan yang boleh dibaca manusia:

<code class="cpp">char hex_hash[65];
for (int i = 0; i < SHA256_DIGEST_LENGTH; i++) {
    sprintf(hex_hash + (i * 2), "%02x", hash[i]);
}
hex_hash[64] = 0;</code>
Salin selepas log masuk

Contoh Penggunaan

Sekarang kita mempunyai fungsi kita di tempat, kita boleh menggunakannya untuk menjana cincang SHA256 mengikut keperluan. Contohnya:

<code class="cpp">// 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);</code>
Salin selepas log masuk

Ini akan menjana cincang SHA256 untuk rentetan atau fail yang diberikan dan menyimpannya dalam penimbal yang sepadan.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Hashes SHA256 dengan OpenSSL dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan