C
Özet - Kriptografi
SHA-256 ve HMAC'i birleştirerek bir mesaj doğrulayıcı yazarsın.
Kriptografi özeti
Kriptografi araç setini öğrendin: hash ile özet, SHA-256 ile standart hash, HMAC ile anahtarlı doğrulama, AES ile simetrik şifreleme, /dev/urandom ile güvenli rastgele. Bunlar veri bütünlüğü, özgünlük ve gizliliğin çekirdeğidir.
Bu özette SHA-256, HMAC ve urandom'u birleştirip bir kripto hazırlık uygulaması yazacağız. Hepsini bir arada kullanmak, gerçek bir güvenlik akışının nasıl kurulduğunu gösterir. Çıktı deterministiktir: sabit bir hazır mesajı yazdırırız.
Uygulama Kripto hazırla
EVP_MD_CTX *ctx = EVP_MD_CTX_new(); EVP_DigestInit_ex(ctx, EVP_sha256(), NULL); EVP_DigestUpdate(ctx, "abc", 3); unsigned char digest[EVP_MAX_MD_SIZE]; unsigned int len = 0; EVP_DigestFinal_ex(ctx, digest, &len); EVP_MD_CTX_free(ctx); ile SHA-256 hesapla. HMAC(EVP_sha256(), "anahtar", 7, (const unsigned char *)"mesaj", 5, digest, &len); ile HMAC hesapla. int fd = open("/dev/urandom", O_RDONLY); if (fd >= 0) close(fd); ile urandom aç ve kapat. printf("kripto hazır\n");.
Örnek çözümü göster
#include <stdio.h>
#include <openssl/evp.h>
#include <openssl/hmac.h>
#include <fcntl.h>
#include <unistd.h>
int main(void) {
EVP_MD_CTX *ctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(ctx, EVP_sha256(), NULL);
EVP_DigestUpdate(ctx, "abc", 3);
unsigned char digest[EVP_MAX_MD_SIZE];
unsigned int len = 0;
EVP_DigestFinal_ex(ctx, digest, &len);
EVP_MD_CTX_free(ctx);
HMAC(EVP_sha256(), "anahtar", 7, (const unsigned char *)"mesaj", 5, digest, &len);
int fd = open("/dev/urandom", O_RDONLY);
if (fd >= 0) close(fd);
printf("kripto hazır\n");
return 0;
}
Sonraki adımlar
Kriptografi temellerini tamamladın. Bu araçlar, kimlik doğrulama sistemlerinin, güvenli dosya transferinin ve şifreli iletişimin çekirdeğidir. SHA-256 ile bütünlük, HMAC ile özgünlük, AES ile gizlilik, urandom ile anahtar üretimi sağlarsın.
Sonraki konular: TLS ile ağ güvenliği, anahtar türetme (PBKDF2), asimetrik şifreleme (RSA, ECC). Üretimde bu araçları birleştirip uçtan uca güvenli sistemler kurarsın. Her zaman kanıtlanmış kütüphaneler (OpenSSL, libsodium) kullan; kendi kriptonu yazma.
Kendini test et
-
Hangi doğru kullanım sırasıdır?
- Önce şifrele, sonra hash
- Önce hash, sonra şifrele
- Yalnız rastgele sayı
- Hash bütünlük, şifre gizlilik için
Cevabı göster
Hash bütünlük, şifre gizlilik için — Hash bütünlük, şifre gizlilik sağlar; birlikte kullanılırlar.
-
Kripto araçlarını eşle
- SHA-256
- Özet
- HMAC
- Doğrulama
- AES
- Şifreleme
- urandom
- Rastgele
Sıradaki ders: ASCII ve UTF-8