Dart
Password hashing
Password hashing (bcrypt) öğrenirsin.
bcrypt ile parola hashleme
bcrypt, parolaları güvenli hashlemek için tasarlanmış bir algoritmadır. Her hash'e rastgele bir tuz (salt) ekler; bu nedenle aynı parola bile her seferinde farklı hash üretir. Gökkuşağı tablolarına (rainbow table) karşı korur. import 'package:bcrypt/bcrypt.dart'; ile içe aktarılır.
Örnek: final hash = BCrypt.hashpw('sifre123', BCrypt.gensalt());. Bu, 'sifre123' parolasını tuzlayarak hashler. Doğrulama: BCrypt.checkpw('sifre123', hash). Parola doğruysa true, yanlışsa false döner. bcrypt bilinçli olarak yavaştır; bu, kaba kuvvet (brute force) saldırılarını zorlaştırır.
Parola saklama deseni
Bir uygulama parolaları asla düz metin (plain text) olarak saklamaz. Bunun yerine kayıt sırasında BCrypt.hashpw(parola, BCrypt.gensalt()) ile hash üretir ve hash'i saklar. Giriş sırasında kullanıcının girdiği parolayı BCrypt.checkpw(parola, saklananHash) ile doğrular.
Bu desen, veri tabanı sızıntısında bile parolaların açığa çıkmamasını sağlar. Saldırgan hash'leri alır ama orijinal parolaları çıkaramaz. bcrypt'in yavaşlığı, sızdırılan hash'lerin kırılmasını da zorlaştırır. Bu derste hashPassword ve verifyPassword fonksiyonlarını tanımlayacağız.
Uygulama Parola fonksiyonları
import 'package:bcrypt/bcrypt.dart'; ekle. hashPassword(String password) fonksiyonunu tanımla: return BCrypt.hashpw(password, BCrypt.gensalt()); içersin. verifyPassword(String password, String hash) fonksiyonunu tanımla: return BCrypt.checkpw(password, hash); içersin. main içinde print('bcrypt: parola hashleme') ve print('API: hashpw, checkpw') ekle.
Örnek çözümü göster
import 'package:bcrypt/bcrypt.dart';
String hashPassword(String password) {
return BCrypt.hashpw(password, BCrypt.gensalt());
}
bool verifyPassword(String password, String hash) {
return BCrypt.checkpw(password, hash);
}
void main() {
print('bcrypt: parola hashleme');
print('API: hashpw, checkpw');
}
Kendini test et
-
bcrypt importu
import 'package:____/bcrypt/bcrypt.dart';
Cevabı göster
import 'package:bcrypt/bcrypt/bcrypt.dart';
-
bcrypt parçalarını eşleştir
- bcrypt
- Parola hashleme
- hashpw
- Hashler
- checkpw
- Doğrular
- gensalt
- Tuz üretir
-
bcrypt ne için kullanılır?
- Dosya sıkıştırma
- HTTP isteği
- Parola hashleme
- Ağ yönetimi
Cevabı göster
Parola hashleme — bcrypt parola hashleme için kullanılır.
Sıradaki ders: Özet - Güvenlik