Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menjana Hashes SHA256 dengan OpenSSL dan 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>
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>
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>
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>
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>
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>
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!