Ö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
#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
#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 |