Documente Academic
Documente Profesional
Documente Cultură
Corabu Ionut-Claudiu
Anul 2,Grupa 224
15 mai 2023
Universitatea din Craiova
Facultatea de Stiinte, sectia Informatica
Cuprins:
Iată câteva motive pentru care Python este un limbaj de programare popular și
preferat în acest context:
2.5. Testare și debbuging facil: Python oferă suport puternic pentru testare și
debbuging, permițând programatorilor să identifice și să rezolve rapid
problemele de securitate. Există biblioteci și instrumente specializate,
cum ar fi Pytest și PDB (Python Debugger), care facilitează procesul de
testare și depanare a aplicațiilor de securitate.
Toate aceste caracteristici și avantaje fac din Python un limbaj puternic pentru
dezvoltarea soluțiilor de securitate în domeniul sistemelor informatice. Cu toate
acestea, este important să subliniem că alegerea limbajului de programare depinde și
de contextul specific al proiectului și de cerințele tehnice și de securitate.
Sistemul de operare Windows este una dintre cele mai utilizate platforme în
domeniul sistemelor informatice, oferind o gamă largă de funcționalități și
servicii. Cu toate acestea, niciun sistem de operare nu este imun la vulnerabilități
și riscuri de securitate. În acest referat, ne vom concentra asupra vulnerabilităților
generale ale sistemului de operare Windows, sub care rulează soluția software de
generare a parolelor cu algoritmul LFSR dezvoltată în limbajul Python.
Fig 4.4.
4.5. Generarea parolelor:
Fig 4.5.
• Pentru a închide aplicația, apăsați butonul "X" din colțul din dreapta sus
al ferestrei sau utilizați opțiunea "Exit" disponibilă în meniu, dacă
există.
Aceștia sunt pașii principali pentru utilizarea soluției software de generare a
parolelor cu algoritmul LFSR dezvoltată în limbajul Python.
Asigurați-vă că respectați cerințele de securitate și utilizați parolele generate
într-un mod responsabil.
5. Codul aplicatiei.
import tkinter as tk
import random
def generate_passwords():
min_alpha = int(min_alpha_entry.get())
max_alpha = int(max_alpha_entry.get())
min_num = int(min_num_entry.get())
max_num = int(max_num_entry.get())
min_spec = int(min_spec_entry.get())
max_spec = int(max_spec_entry.get())
total_chars = int(total_chars_entry.get())
alpha =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
nums = "0123456789"
spec = "!@#$%^&*()_+{}[]|:;<>,.?/~`"
passwords = []
for i in range(50):
# Generam parola
password = ""
for j in range(total_chars):
if j < min_alpha + min_num + min_spec:
# Dacă avem cerințe minime pentru fiecare tip
de caracter,
# generăm un caracter aleatoriu pentru fiecare
tip.
if j < min_alpha:
password += random.choice(alpha)
elif j < min_alpha + min_num:
password += random.choice(nums)
else:
password += random.choice(spec)
else:
# Dacă nu am atins cerințele minime, adăugăm un
caracter aleatoriu
# dintr-un tip de caracter în funcție de o
probabilitate calculată.
prob_alpha = (max_alpha - min_alpha) /
(total_chars - j)
prob_num = (max_num - min_num) / (total_chars -
j)
prob_spec = (max_spec - min_spec) /
(total_chars - j)
r = next(lfsr_gen) # Generăm un număr aleatoriu
cu LFSR
if r < prob_alpha:
password += random.choice(alpha)
elif r < prob_alpha + prob_num:
password += random
elif r < prob_alpha + prob_num + prob_spec:
password += random.choice(spec)
else:
password += random.choice(alpha + nums +
spec)
passwords.append(password)
return passwords
root.mainloop()