2. Contrasenyes febles¶
Una empresa disposa d’informació sobre les contrasenyes dels seus usuaris de sistemes informàtics i necessita desenvolupar funcions per gestionar la seguretat d’aquestes contrassenyes.
Es considera que una contrasenya és feble si té menys de 6 caràcters o està formada només per caràcters alfabètics.
Dissenya la funció següent i desa-la al fitxer febles.py:
- febles.hi_ha_feble(lcont)¶
Retorna la primera contrasenya feble de lcont.
- Paràmetres:
usuari (list[str]) – Llista d’strings que representen parelles amb el codi d’un servei i la contrasenya de l’usuari per aquest servei separats per dos punts (
:).- Tipus de retorn:
- Retorna:
La primera contrasenya de la llista que és feble o un string buit si no n’hi ha cap.
Els següents doctests mostren exemples del que ha de fer la funció:
>>> lc1 = ['101:abc123', '205:123456', '312:password'] >>> hi_ha_feble(lc1) 'password' >>> lc2 = ['315:superpass3', '209:123456', '101:abcd1234'] >>> hi_ha_feble(lc2) ''
Nota
Disposes de més tests al fitxer
test-hiha-feble.txt
A més, es disposa d’una llista de llistes amb tots els usuaris on cada subllista conté el nom de l’usuari (string) i una llista (no buida) de serveis i contrasenyes d’aquest usuari. Per exemple:
>>> usuaris = [
... ["anna23", ["101:abc123", "205:123456", "312:password"]],
... ["joan_p", ["234:qwerty32", "102:1234", "307:qwerty", "209:joan2024"]],
... ["marta_x", ["312:holamarta", "205:Marta123", "410:admin123"]],
... ["carla_t", ["303:qwerty2", "208:12345", "209:contr", "407:adminadmin"]],
... ["jordi_s", ["315:superpass3", "209:123456", "101:abcd1234"]],
... ["laura_n", ["303:f2342ds", "315:pwewwu332"]]
... ]
Dissenya la funció següent i desa-la al fitxer febles.py:
- febles.filtra_usuaris_dep(lusuaris, ldep)¶
Retorna els usuaris que tenen alguna contrasenya feble, juntament amb la primera contrasenya feble, que pertanyen al departament especificat per ldep.
- Paràmetres:
- Tipus de retorn:
- Retorna:
Una llista amb els usuaris que tenen alguna contrasenya feble formada per tuples amb el nom d’usuari i la primera contrasenya feble de la llista de serveis i contrasenyes d’aquest usuari. La llista estarà ordenada alfabèticament per nom d’usuari de forma descendent. Si no hi ha cap usuari del departament o cap usuari del departament té alguna contrasenya feble, retorna una llista buida.
Els següents doctests mostren exemples del que ha de fer la funció:
>>> usuaris = [ ... ["anna23", ["101:abc123", "205:123456", "312:password"]], ... ["joan_p", ["234:qwerty32", "102:1234", "307:qwerty", "209:joan2024"]], ... ["marta_x", ["312:holamarta", "205:Marta123", "410:admin123"]], ... ["carla_t", ["303:qwerty2", "208:12345", "209:contr", "407:adminadmin"]], ... ["jordi_s", ["315:superpass3", "209:123456", "101:abcd1234"]], ... ["laura_n", ["303:f2342ds", "315:pwewwu332"]] ... ] >>> ldep = ["anna23", "marta_x", "jordi_s", "carla_t"] >>> filtra_usuaris_dep(usuaris, ldep) [('marta_x', 'holamarta'), ('carla_t', '12345'), ('anna23', 'password')] >>> ldep = ["toni_g", "laura_n"] >>> filtra_usuaris_dep(usuaris, ldep) []
Nota
Disposes de més tests al fitxer
test-filtra-usuaris.txt
Disposeu de solucions al fitxer febles.py