Úterý , 15 Červenec 2025
Domů Programování Zabezpečená registrace a přihlášení pomocí Pythonu a SQLite
ProgramováníPython

Zabezpečená registrace a přihlášení pomocí Pythonu a SQLite

Tento program, nazvaný „Zabezpečená registrace a přihlášení pomocí Pythonu a SQLite“, je sofistikovaný nástroj navržený pro vytvoření bezpečného prostředí pro správu uživatelských účtů. Využívá kombinaci Pythonu, jednoho z nejpopulárnějších programovacích jazyků dneška, a SQLite, lehké a samostatné databázové řešení, pro správu a ukládání uživatelských údajů.

import hashlib
import sqlite3
import os

volba = int(input("Chcete se zaregistrovat (1) nebo přihlásit (2): "))

def hashovat_heslo(heslo, sul):
    p = hashlib.sha256()
    p.update((heslo + sul).encode())
    return p.hexdigest()

def vytvorit_sul():
    return os.urandom(16).hex()

# Registrace
if volba == 1:
    u = input("Uživatelské jméno: ")
    p = input("Heslo: ")

    sul = vytvorit_sul()
    hash_hesla = hashovat_heslo(p, sul)

    conn = sqlite3.connect("creds_new.db")
    cur = conn.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS creds_new (user text, pass text, sul text)")
    cur.execute("INSERT INTO creds_new VALUES (?, ?, ?)", (u, hash_hesla, sul))
    conn.commit()
    cur.close()
    print("Úspěšně zaregistrováno")

# Přihlášení
elif volba == 2:
    u_inp = input("Uživatelské jméno: ")
    p_inp = input("Heslo: ")

    conn = sqlite3.connect("creds_new.db")
    cur = conn.cursor()
    cur.execute("SELECT pass, sul FROM creds_new WHERE user=?", (u_inp,))
    result = cur.fetchone()

    if result:
        hash_hesla_db, sul = result
        p_hash = hashovat_heslo(p_inp, sul)

        if p_hash == hash_hesla_db:
            print("Přihlášení úspěšné")
        else:
            print("Špatné heslo")
    else:
        print("Uživatel nenalezen")

    conn.commit()
    cur.close()

# Vybrali jste špatnou volbu
else:
    print("Špatná volba")

Program je založen na dvou hlavních funkcích: registraci a přihlášení. Registrace umožňuje uživatelům vytvářet nové účty pomocí jedinečného uživatelského jména a hesla. Tyto údaje jsou následně hashovány pomocí šifrovacího algoritmu SHA-256, což zajišťuje, že v databázi nejsou uložena skutečná hesla, ale jejich hash hodnoty. Toto je zásadní pro zabezpečení, protože i v případě úniku databáze by útočník získal pouze hash hodnoty, nikoli skutečná hesla.

Přihlašovací funkce pak ověřuje identitu uživatele porovnáním zadaného uživatelského jména a hesla s hash hodnotami uloženými v databázi. Pokud dojde k shodě, uživatel je úspěšně přihlášen.

Důležitou součástí programu je jeho zabezpečení proti SQL injekci. SQL injekce je technika, která může být použita k manipulaci s databází, ale tím, že tento program používá parametrizované dotazy, je tato hrozba minimalizována.

Tento program je tedy ideálním řešením pro každého, kdo hledá efektivní a bezpečný způsob správy uživatelských účtů v Pythonu. Jeho flexibilita a bezpečnostní opatření ho činí vhodným pro širokou škálu aplikací, od malých projektů po rozsáhlé databázové systémy.

Zanechte komentář

Napsat komentář

Související články

Programování

Windows program pro výuku jazyků

🧠 Program pro výuku jazyků: Vaše interaktivní cesta k ovládnutí slovíček 📝...

ProgramováníUmělá inteligence

Runway Game Worlds: Vytvářejte video hry s generativní AI

Runway Game Worlds: Vytvářejte video hry s generativní AI bez nutnosti programování...

ProgramováníPython

PyCharm JetBrains IDE vývojové prostředí

🚀 Úvod PyCharm je špičkové integrované vývojové prostředí (IDE) od společnosti JetBrains,...

ProgramováníStrojové učeníUmělá inteligence

Neuromorfní čipy vs. GPU/TPU

Top články Neuromorfní čipy vs. GPU/TPU 19. 6. 2025 Edge-AI v IoT:...

×
Avatar
PetrPikora.com
AI Chatbot
Ahoj! Jak vám mohu pomoci?
 

Používáním tohoto chatbota souhlasíte se shromažďováním a používáním vašich dat, jak je uvedeno v našich Zásadách ochrany osobních údajů. Vaše údaje budou použity pouze jako pomoc s vaším dotazem.