/
DannyFLS
/
HASH
Обзор
Документация
Войти
/
DannyFLS
/
HASH
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
LB-7.py
79 строк
2 KB
DannyGolds
first_commit
15 май 2026, 07:11
15 май 2026, 07:11
06d6e79
Код
Авторство
О чём код?
import tkinter as tk from tkinter import ttk, messagebox import hmac import hashlib SECRET_KEY = b"super_secret_key_123" def compute_hmac(message: str) -> str: mac = hmac.new(SECRET_KEY, message.encode(), hashlib.sha256) return mac.hexdigest() def verify_hmac(message: str, mac_hex: str) -> bool: mac = hmac.new(SECRET_KEY, message.encode(), hashlib.sha256) return hmac.compare_digest(mac.hexdigest(), mac_hex) def on_generate(): msg = message_entry.get("1.0", tk.END).strip() if not msg: messagebox.showwarning("Ошибка", "Введите сообщение") return mac = compute_hmac(msg) hmac_entry.delete(0, tk.END) hmac_entry.insert(0, mac) def on_verify(): msg = message_entry.get("1.0", tk.END).strip() mac = hmac_entry.get().strip() if not msg or not mac: messagebox.showwarning("Ошибка", "Введите сообщение и HMAC") return if verify_hmac(msg, mac): messagebox.showinfo("Проверка", "✔ Сообщение аутентично и не изменено") else: messagebox.showerror("Проверка", "✘ Проверка не пройдена — сообщение изменено или HMAC подделан") def on_fake_mac(): fake = "00" * 32 hmac_entry.delete(0, tk.END) hmac_entry.insert(0, fake) messagebox.showinfo("Подделка", "Подставлен фальшивый MAC.\nПопробуйте проверить.") # ---------------- GUI ---------------- window = tk.Tk() window.title("HMAC Демонстрация (Вариант 12)") window.geometry("700x450") frame = ttk.Frame(window, padding=10) frame.pack(fill=tk.BOTH, expand=True) # Сообщение ttk.Label(frame, text="Сообщение:").pack(anchor="w") message_entry = tk.Text(frame, height=6, font=("Arial", 11)) message_entry.pack(fill=tk.X) # HMAC ttk.Label(frame, text="HMAC (SHA-256):").pack(anchor="w", pady=(10, 0)) hmac_entry = ttk.Entry(frame, font=("Arial", 11)) hmac_entry.pack(fill=tk.X) # Кнопки btn_frame = ttk.Frame(frame) btn_frame.pack(pady=15) ttk.Button(btn_frame, text="Сгенерировать HMAC", width=25, command=on_generate).grid(row=0, column=0, padx=5) ttk.Button(btn_frame, text="Проверить HMAC", width=25, command=on_verify).grid(row=0, column=1, padx=5) ttk.Button(btn_frame, text="Подделать MAC", width=25, command=on_fake_mac).grid(row=1, column=0, columnspan=2, pady=10) window.mainloop()