1, el nombre de usuario y la contraseña están registrados en texto cifrado
registro de inscripción
Construir un almacén de contraseñas de usuario passwd.json
[root @ Superar作业] # cat passwd.json [ { " Egon " : " e10adc3949ba59abbe56e057f20f883e " }, { " tanque " : " 5d41402abc4b2a76b9719d911017c592 " } ] [root @ Superar作业] #
función de registro:
Importación OS importación SYS importación hashlib importación call_request DEF el Registro (): el tiempo Verdadero: , REGISTER_NAME, = la entrada ( ' Introduzca el nombre de usuario registrado: ' ) .strip () register_pwd = la entrada ( ' Por favor, introduzca la contraseña del usuario: ' ) .strip ( ) pwd = hashlib.md5 (register_pwd.encode ( ' UTF-8. ' )) MSG = call_request.register_request (, REGISTER_NAME ,, pwd.hexdigest ()) SI MSG: Imprimir (MSG) ROMPER la persona : Imprimir ( ' existe usuario} {! ' ) Register ()
Lograr resultados:
Introduzca un nombre de usuario registrado: Egon Egon Por favor introduzca la contraseña del usuario: 123 123 usuarios Egon ya existe! Introduzca un nombre de usuario registrado: LXX LXX Por favor introduzca la contraseña del usuario: 123789 123789 usuarios registrados éxito LXX!
Inicio de sesión de inicio de sesión:
DEF del Usuario (): el tiempo Verdadero: login_name = la entrada ( ' Por favor, introduzca su nombre de usuario: ' ) .strip () login_pwd = la entrada ( ' Por favor, introduzca la contraseña: ' ) .strip () pwd_again = la entrada ( ' Introduzca la contraseña de nuevo: ' ) .strip () IF login_pwd == pwd_again: RES = hashlib.md5 (login_pwd.encode ( 'UTF-8 ' )) MSG = call_request.login_request (login_name, res.hexdigest ()) SI MSG: Imprimir(Msg) ROMPER la persona : Imprimir ( ' nombre de usuario o contraseña, el inicio de sesión falla! ' ) Else : Imprimir ( ' dos contraseñas no coinciden, el inicio de sesión falla! ' )
2, verificación de la integridad del archivo
archivo de destino MD5: 1610bb9956bdd0758051c78a27da5f99
C: \ Users \ Administrator \ Desktop \ day22.mp4 aprender Python
importar hashlib m = hashlib.md5 () con abierto ( ' / práctica / day23 / pitón学习day22.mp4 ' , modo = ' rb ' ) como f: para línea en f: m.update (línea) de impresión (m.hexdigest ())
[Root @ Superar trabajo] # Python check_m.py 1610bb9956bdd0758051c78a27da5f99 [root @ Superar trabajo] # vim check_m.py
def check_large_file_md5 (): con abierto (sys.argv [ 1], el modo = ' rb ' ) como f: para i en rango (4 ): m.update (f.read ( 204800 )) f.seek ( 10240000,1 ) de impresión (m.hexdigest ())
3, archivo de configuración del proyecto es analizada ConfigParser
archivo de configuración ini
[section1] k1 = v1 k2: v2 usuario = Egon edad = 18 is_admin = verdadero salario = 31 [section2] k1 = v1
de ConfigParser importación ConfigParser config = ConfigParser () config.read ( ' Prueba.ini ' ) de impresión (config.sections ()) de impresión (config.options ( ' section1 ' )) de impresión (config.items ( ' section1 ' )) de impresión (config.get ( ' sección 1 ' , ' usuario ' )) de impresión (config.getint ( ' sección 1 ' , ' edad ' )) imprimir (config.getboolean ( ' sección 1 ' , ' is_admin ' )) de impresión (config.getfloat ( ' sección 1 ' , ' salario ' ))