Python ile yazdığım uygulamaya key sistemi getirme hakkında yardım

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üye
Katılım
13 Mar 2023
Mesajlar
1
Tepki puanı
0
Ödüller
1
Yaş
38
3 HİZMET YILI
selamlar Python ile yazdığım uygulamaya key sistemi getirmek istiyorum. yani benim belirlediğim keyler ile giriş yapılabilicek. ama bu keyleri istediğim zaman iptal edebilmem lazım. ücretli yada ücretsiz destek olursanız sevinirim.
 
Onaylı Üye
Katılım
9 Haz 2019
Mesajlar
110
Çözümler
1
Tepki puanı
38
Ödüller
6
Yaş
31
7 HİZMET YILI
eğerki normal githup blogger üzerinden keyi aktif etmek ve kapatmak istiyorsan yardımcı olabilirim, Python dosyası calışır keyi alırsınız aktif edersiniz veya o keyi tekrar pasif hale getirebilirsiniz.
 
Süper Üye
Katılım
24 Tem 2020
Mesajlar
1,499
Çözümler
4
Tepki puanı
87
Ödüller
5
Yaş
25
5 HİZMET YILI
selamlar Python ile yazdığım uygulamaya key sistemi getirmek istiyorum. yani benim belirlediğim keyler ile giriş yapılabilicek. ama bu keyleri istediğim zaman iptal edebilmem lazım. ücretli yada ücretsiz destek olursanız sevinirim.
Hocam özelden yaz yardımcı olayım
 
Admin
Katılım
9 Eki 2017
Mesajlar
13,541
Çözümler
1,051
Tepki puanı
3,383
Ödüller
22
8 HİZMET YILI
selamlar Python ile yazdığım uygulamaya key sistemi getirmek istiyorum. yani benim belirlediğim keyler ile giriş yapılabilicek. ama bu keyleri istediğim zaman iptal edebilmem lazım. ücretli yada ücretsiz destek olursanız sevinirim.
Aşağıya yazıyorum:

Anahtarların saklanacağı bir veritabanına ihtiyacın var ben burada sqlite veritabanını kullanacağım anahtarlar tablosu şöyle olabilir:
sql CREATE TABLE keys (id INTEGER PRIMARY KEY AUTOINCREMENT, key TEXT, is_active INTEGER DEFAULT 1);

"key" sütunu anahtarları "is_active" sütunu ise anahtarın aktif olup olmadığını (1: aktif, 0: pasif) tutacaktır

python kodu ise şöyle olabilir:
import sqlite3 import hashlib # SQLite veritabanı bağlantısı conn = sqlite3.connect('keys.db') c = conn.cursor() # Anahtar tablosunu oluşturma c.execute('''CREATE TABLE IF NOT EXISTS keys (id INTEGER PRIMARY KEY AUTOINCREMENT, key TEXT, is_active INTEGER DEFAULT 1)''') # Anahtar ekleme def add_key(key): hashed_key = hashlib.sha256(key.encode()).hexdigest() c.execute("INSERT INTO keys (key) VALUES (?)", (hashed_key,)) conn.commit() # Anahtar silme def delete_key(key): hashed_key = hashlib.sha256(key.encode()).hexdigest() c.execute("UPDATE keys SET is_active=0 WHERE key=?", (hashed_key,)) conn.commit() # Anahtar doğrulama def verify_key(key): hashed_key = hashlib.sha256(key.encode()).hexdigest() c.execute("SELECT * FROM keys WHERE key=? AND is_active=1", (hashed_key,)) result = c.fetchone() if result: return True else: return False

Anahtarları pasif hale getirmek için zaten delete_key fonksiyonunu kullanabilirsiniz ama anahtarların geçerlilik süresini kontrol etmek istersen keys tablosuna bir expiration_date sütunu ekleyebilirsin bu sütun anahtarın son kullanma tarihini tutacaktır daha sonra verify_key fonksiyonunda geçerlilik süresi dolan anahtarları doğrulamazsın

Burada geçerlilik süresini kontrol edebilir ve istediğin zaman pasifleştirebilirsin.:
import sqlite3 import hashlib import datetime # SQLite veritabanı bağlantısı conn = sqlite3.connect('keys.db') c = conn.cursor() # Anahtar tablosunu oluşturma c.execute('''CREATE TABLE IF NOT EXISTS keys (id INTEGER PRIMARY KEY AUTOINCREMENT, key TEXT, is_active INTEGER DEFAULT 1, expiration_date DATE)''') # Anahtar ekleme def add_key(key, expiration_date=None): hashed_key = hashlib.sha256(key.encode()).hexdigest() c.execute("INSERT INTO keys (key, expiration_date) VALUES (?, ?)", (hashed_key, expiration_date)) conn.commit() # Anahtar silme def delete_key(key): hashed_key = hashlib.sha256(key.encode()).hexdigest() c.execute("UPDATE keys SET is_active=0 WHERE key=?", (hashed_key,)) conn.commit() # Anahtar doğrulama def verify_key(key): hashed_key = hashlib.sha256(key.encode()).hexdigest() c.execute("SELECT * FROM keys WHERE key=? AND is_active=1 AND (expiration_date IS NULL OR expiration_date >= ?)", (hashed_key, datetime.date.today())) result = c.fetchone() if result: return True else: return False
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst