Pátek , 27 Červen 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

blank
blank

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

blank
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:...

blank
PythonTensorFlow.js

🐍 Úvod do TensorFlow Lite & Python

TensorFlow Lite (TFLite) ve spojení s Pythonem otevírá dveře on-device strojovému učení...

blank
Python

Detekční systém v Pythonu s GPU akcelerací

Desktop Motion Detection s GPU akcelerací🎯 Účel programuTento nástroj sleduje vybrané okno...

blank
PythonYouTube videa

Python generátor náhledového obrázku YouTube videa

import re import os import requests import argparse from urllib.parse import urlparse,...