Python kullanarak basit bir blockchain tabanlı kullanıcı kayıt sistemi örneği:
import hashlib
import datetime
class User:
def __init__(self, username, password):
self.username = username
self.password = self._hash_password(password)
self.timestamp = datetime.datetime.now()
self.previous_hash = None
self.hash = self._calculate_hash()
def _hash_password(self, password):
return hashlib.sha256(password.encode()).hexdigest()
def _calculate_hash(self):
data = str(self.timestamp) + self.username + self.password
return hashlib.sha256(data.encode()).hexdigest()
class Blockchain:
def __init__(self):
self.chain = []
self.create_genesis_block()
def create_genesis_block(self):
genesis_user = User("admin", "admin123")
genesis_user.previous_hash = None
self.chain.append(genesis_user)
def add_user(self, username, password):
new_user = User(username, password)
previous_user = self.get_latest_user()
new_user.previous_hash = previous_user.hash
self.chain.append(new_user)
def get_latest_user(self):
return self.chain[-1]
def validate_user(self, username, password):
for user in self.chain:
if user.username == username and user.password == hashlib.sha256(password.encode()).hexdigest():
return True
return False
# Kullanıcı kayıt sistemi örneği
blockchain = Blockchain()
# Yeni kullanıcı eklemek
blockchain.add_user("DenemeUser", "pass123")
blockchain.add_user("DenemeUser11", "sec123")
# Kullanıcı doğrulama
username = input("Kullanıcı adınızı girin: ")
password = input("Parolanızı girin: ")
if blockchain.validate_user(username, password):
print("Giriş başarılı.")
else:
print("Hatalı kullanıcı adı veya parola.")
Bu örnekte, User
sınıfı bir kullanıcıyı temsil eder ve kullanıcı adını, şifresini, zaman damgasını, önceki kullanıcının karma değerini ve kendi karma değerini tutar. Blockchain
sınıfı ise kullanıcıları bir blok zincirinde saklar ve kullanıcılara eklemek ve doğrulamak için yöntemler sağlar. Örnekte, önceden tanımlı bir yönetici kullanıcısı (genesis kullanıcısı) oluşturulur ve ardından add_user
yöntemi kullanılarak yeni kullanıcılar eklenir. validate_user
yöntemi, kullanıcının doğruluğunu kontrol eder ve girişin başarılı olup olmadığına karar verir.