Özet - Güvenlik
- Dart kursu
- İleri seviye
- Ders 72/83
- 5 dk
crypto, HMAC ve encrypt'i birleştirerek bir şifreleyici yazarsın.
Özet - Güvenlik
Bu grupta Dart ile güvenlik araçlarını öğrendik. crypto hash fonksiyonları (sha256) sağlar; HMAC anahtarlı imza üretir; encrypt AES simetrik şifreleme yapar; Random.secure kriptografik rastgele üretir; bcrypt parola hashleme sunar.
Bu özette crypto ve HMAC'i bir araya getiren küçük bir program yazacağız. Program bir verinin SHA-256 hash'ini ve aynı verinin HMAC-SHA256 imzasını hesaplar. Bu, bir uygulamanın veri bütünlüğü ve kimlik doğrulama katmanının küçük örneğidir.
Uygulama Hash ve HMAC özeti
import 'dart:convert'; ve import 'package:crypto/crypto.dart'; ekle. main içinde final data = utf8.encode('test'); ekle. final hash = sha256.convert(data); ile hash hesapla. final key = utf8.encode('anahtar'); ve final hmac = Hmac(sha256, key); ile HMAC oluştur, final digest = hmac.convert(data); ile imzayı hesapla. print('Hash: $hash') ve print('HMAC: $digest') ile yazdır.
Başlangıç kodu
// dart:convert ve crypto paketini içe aktar
void main() {
// 'test' verisinin sha256 hash'ini ve HMAC-SHA256 imzasını hesapla ve yazdır
}Örnek çözüm
import 'dart:convert';
import 'package:crypto/crypto.dart';
void main() {
final data = utf8.encode('test');
final hash = sha256.convert(data);
final key = utf8.encode('anahtar');
final hmac = Hmac(sha256, key);
final digest = hmac.convert(data);
print('Hash: $hash');
print('HMAC: $digest');
}Beklenen çıktı
Hash: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 HMAC: 6370f34eedacadc33452b4fc825abafc6aa7ae86d29e7b36fe1b76f0ffbad0fa
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Parola hashleme algoritması?
- jaspr
- crypto
- encrypt
- bcrypt Doğru cevap
Açıklama: bcrypt parola hashleme algoritmasıdır.
2 Güvenlik araçlarını eşleştir
| Kavram | Anlamı |
|---|---|
sha256 |
Hash |
Hmac |
İmzalı hash |
AES |
Şifreleme |
bcrypt |
Parola |
3 sha256 çağrısı
final hash = ____.convert(utf8.encode('test'));
final hash = sha256.convert(utf8.encode('test'));
Açıklama: sha256.convert(...) SHA-256 özetini hesaplar.