HMAC
- Dart kursu
- İleri seviye
- Ders 68/83
- 5 dk
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
// dart:convert ve crypto paketini içe aktar
void main() {
// 'anahtar' ile 'mesaj' için HMAC-SHA256 hesapla ve yazdır
}Örnek çözüm
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
final hmac = ____(sha256, key);
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 |