CodeBlanks Logo Icon CodeBlanks

Özet - Kriptografi

  • C kursu
  • İleri seviye
  • Ders 60/83
  • 5 dk

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");.

Başlangıç kodu

main.c
#include <stdio.h>
#include <openssl/evp.h>
#include <openssl/hmac.h>
#include <fcntl.h>
#include <unistd.h>

// sha256 ve hmac hesapla
// urandom aç ve kapat
// hazır yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#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;
}

Beklenen çıktı

kripto hazır

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.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 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 Doğru cevap

Açıklama: Hash bütünlük, şifre gizlilik sağlar; birlikte kullanılırlar.

2 Kripto araçlarını eşle

Kavram Anlamı
SHA-256 Özet
HMAC Doğrulama
AES Şifreleme
urandom Rastgele

İleri seviye bölümündeki tüm dersler