CodeBlanks Logo Icon CodeBlanks

HMAC

Hmac ile mesaj doğrulama öğrenirsin.

HMAC

HMAC (Hash-based Message Authentication Code), anahtarlı hash'tir. Sadece hash değil, mesajın bütünlüğü ve kimlik doğrulamasını birlikte sağlar. Hmac(sha256, key).convert(data) biçiminde kullanılır.

Örnek: final key = utf8.encode('anahtar'); final data = utf8.encode('mesaj'); final hmac = Hmac(sha256, key); final digest = hmac.convert(data);. Burada anahtar ve veri baytlara çevrilir, HMAC-SHA256 hesaplanır. Sonuç yine 64 hex karakterdir. Alıcı aynı anahtarla aynı HMAC'i hesaplayıp karşılaştırır; eşitse mesaj değişmemiş ve gönderen doğrulanmış demektir.

HMAC doğrulama

HMAC, iki tarafın paylaştığı bir anahtarla çalışır. Gönderen mesaj ve anahtardan bir HMAC üretir ve mesajla birlikte gönderir. Alıcı aynı anahtarla kendi HMAC'ini hesaplar ve karşılaştırır. Eşitse mesaj değişmemiş ve doğru gönderenden gelmiştir.

Bu, API isteklerini imzalamak için yaygın bir yöntemdir. Örneğin bir web servisi her kullanıcıya bir anahtar verir; istekler bu anahtarla imzalanır. Sunucu imzayı doğrular ve isteğin yetkili kaynaktan geldiğini onaylar. Bu derste HMAC hesaplamayı öğreneceğiz.

Uygulama HMAC-SHA256 hesapla

import 'dart:convert'; ve import 'package:crypto/crypto.dart'; ekle. main içinde final key = utf8.encode('anahtar'); ve final data = utf8.encode('mesaj'); ekle. final hmac = Hmac(sha256, key); ve final digest = hmac.convert(data); ile HMAC hesapla. print(digest) ile yazdır.

Başlangıç kodu

main.dart
// dart:convert ve crypto paketini içe aktar

void main() {
  // 'anahtar' ile 'mesaj' için HMAC-SHA256 hesapla ve yazdır
}

Örnek çözüm

main.dart
import 'dart:convert';
import 'package:crypto/crypto.dart';

void main() {
  final key = utf8.encode('anahtar');
  final data = utf8.encode('mesaj');
  final hmac = Hmac(sha256, key);
  final digest = hmac.convert(data);
  print(digest);
}

Beklenen çıktı

4efc48e22c0421d2f0be62f9369b7930b6b69d9e71ee42a02f25ceb35c441b9c

Soru ve cevaplar

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

1 Hmac oluşturma

Soru
final hmac = ____(sha256, key);
Cevap
final hmac = Hmac(sha256, key);

Açıklama: Hmac(sha256, key) anahtarlı hash oluşturur.

2 HMAC ne ekler?

  • Depolama
  • Sıkıştırma
  • Şifreleme
  • Anahtar ile kimlik doğrulama Doğru cevap

Açıklama: HMAC anahtar ile kimlik doğrulama ekler.

3 HMAC parçalarını eşleştir

Kavram Anlamı
Hmac İmzalı hash
sha256 Hash algoritması
key Anahtar
convert Hesaplar

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