prefacio
hashlib y módulo de registro, el antiguo módulo de cifrado, que es un módulo de registro;
Ahora las empresas son por lo general una gran cantidad de programadores están utilizando encriptación MD5, pero también tiene muchos algoritmos de cifrado en el módulo hashlib Python:
el MD5 (), SHA1 (), Sha224 (), SHA256 (), SHA384 (), SHA512 (), Blake2b (), Blake2s (),
Sha3_224, Sha3_256, Sha3_384, Sha3_512, Shake_128, Y Shake_256.
Un módulo conocido hashlib
1, hashlib: MD5 algoritmo de cifrado proporciona un resumen del módulo.
- No importa cómo los diferentes algoritmos, funcionalidad resumen es siempre la misma.
- El uso de un algoritmo de digerir con respecto a la misma cadena, el valor obtenido es siempre constante.
- El uso de diferentes algoritmos para la misma cadena de digerir, un valor obtenido debe ser diferente.
- No importa qué algoritmo, así hashlib siempre.
2, cifrado Cuál es el papel?
- 1, el número de contraseña / ID y otros datos cifrados
- 2, verificar la consistencia del archivo:
- - Compruebe si el archivo que descargó el archivo en un servidor remoto y el tiempo de descarga constante
- - dos archivos en las dos máquinas que desea comprobar si los dos archivos son iguales
Dos, hashlib md5 cifrado módulo
1, una lectura cifrado md5 proceso de impresión:
Después de cifrar la misma cadena cada vez que imprima resultado es el mismo.
importar hashlib md5 = hashlib.md5 () md5.update (b ' gsxl ' ) de impresión (md5.hexdigest ())
2, el proceso de cifrado de la contraseña al registrarse una cuenta y la cuenta de inicio de sesión Ejemplo:
De hecho, aquí es para llevar al usuario a introducir una contraseña para iniciar sesión en el cifrado MD5 y la contraseña cifrada se almacena en la comparación.
# Cifrado de contraseña de la cuenta de registro, archivo de escritura hashlib importación del usuario = la entrada ( ' Introduzca su cuenta registrada: ' ) passwd = la entrada ( ' establecer la contraseña: ' ) con Open (r ' G: \ Python_projects \ python_study \ Estudio \ study_python \ python_Basics \ UserInfo ' ' A ' ) AS : F MD5 = (hashlib.md5) md5.update (bytes (el passwd, que codifican = ' . UTF-8 ' )) f.write (User + ' | ' ) F .WRITE (md5.hexdigest ()) f.write (' \ El n- ' ) # lee la contraseña e introduzca una contraseña de inicio de sesión cuando se compara la cuenta, justo en el inicio de sesión se realiza correctamente. USER_NAME = INPUT ( ' cuenta entrada: ' ) contraseña = INPUT ( ' contraseña: ' ) uso = '' pwd = '' con Open (R & lt ' G: \ Python_projects \ python_study \ Estudio \ study_python \ python_Basics \ UserInfo ' ) AS F: para que en F: I = i.strip () el uso, pwd = i.split ( ' | ' ) SI USER_NAME ==uso: MD5 = hashlib.md5 () md5.update (bytes (contraseña, que codifican = ' UTF-8. ' )) md5_pwd = md5.hexdigest () IF USER_NAME == == uso md5_pwd y pwd: Imprimir ( ' inicio de sesión satisfactorio ' ) la cosa : Imprimir ( ' cuenta o contraseña incorrecta! ' ) else : print ( ' no existe la cuenta! ' )
3, md5 sal estática móvil, mejorar la seguridad
# . 3, el MD5 móvil estática sal, mejorar la seguridad de importación hashlib MD5 = hashlib.md5 (bytes ( ' gsxl ' , que codifica = ' UTF. 8 ' ) + B ' 123456 ' ) md5.update (B ' 123456 ' ) imprimir (md5.hexdigest ())
Dos, registros de módulo de registro
- Puede "one-click" Control
- Solución de problemas cuando se necesita imprimir una gran cantidad de detalles que me ayude a solucionar problemas
- Los errores graves registrados
- Hay algunos usuarios no es nada mal comportamiento se debe registrar
1, la tala cinco niveles:
# . 1, el registro de cinco niveles: Importar el registro logging.debug ( ' debug - nivel inferior ' ) # bajo nivel de información de depuración logging.info ( ' Info - Información normales " ) # normal de la información logging.warning ( ' Aviso- - advertencias ' ) # información de alerta logging.error ( ' error - mensaje de error ' ) # mensaje de error logging.critical ( ' critical-- grave error ' ) # mensajes de error críticos de alto nivel
2, ejemplos
# 2,实例 # % a,% d% b% Y% H:% M:% S importación tala logging.basicConfig (nivel = logging.DEBUG, formato = ' % (asctime) s% (filename) s ' ' [ línea:% (lineno) d]% (levelname) s% (mensaje) s ' DATEFMT = ' % Y-% m-% d% H:% M:% S ') tratar : int (entrada ( ' 请输入你的密码: ' )) , excepto ValueError: logging.error ( ' error pwd_type ' )
Adjunto basicConfig formatear parámetros y el formato:
Una, la tala función basicConfig () puede cambiar el comportamiento predeterminado de los parámetros específicos del módulo de registro, los parámetros están disponibles: Nombre del archivo: con la creación del nombre de archivo especificado FiledHandler, este registro se almacena en el archivo especificado. fileMode: Abrir archivo, este parámetro se especifica en el nombre de archivo, el valor predeterminado "a" puede también ser designado como "w". Formato: manejador de registro especifica el formato de visualización. DATEFMT: especificar el formato de fecha y hora. Nivel: rootlogger Conjunto (detrás explicará conceptos específicos) Nivel de registro de flujo: StreamHandler creado con la corriente especificada. Puede especificar la salida a sys.stderr, sys.stdout o archivo (F = abierto ( 'el test.log', 'W')), sys.stderr defecto. Si ambas listas el nombre de archivo y de transmisión en dos parámetros, el parámetro de corriente se ignora. En segundo lugar, el formato de cadena de parámetros de formato puede ser utilizado: % (nombre) es el nombre de S Logger % (levelno) S nivel de registro de forma digital % (levelname) S nivel de registro de forma de texto % (ruta de acceso) del registro de llamadas de función de salida S el nombre de ruta completo del módulo no puede estar % (filename) S función de salida de registro de módulo llamado nombre de archivo %(Módulo) es llamando a la función Nombre del módulo de salida de registro % (nombreFunc) S llama al nombre de la función de la función de salida del registro % (lineno) de la línea D de código que registro de llamadas función de salida de la declaración donde % (creados) F de la hora actual, usando el estándar de UNIX números de coma flotante que representan el tiempo % , el número de milisegundos desde Logger d crea cuando la información de registro de salida (relativeCreated) % (el asctime) cadena de S de la hora actual. El formato por defecto es "2003-07-0816: 49: 45.896 ". Milisegundos después de la coma % ID D hilo (hilo). Puede que no tenga % (threadName) Nombre S hilo. No puede tener % d ID de proceso (proceso). Puede no % (mensaje) s mensaje de salida de usuario
3, el registro personalizado
# 3, el registro personalizado # se puede escribir en el chino de importación el registro log = logging.getLogger () # instancias de un objeto F = logging.FileHandler ( ' py.log ' , que codifica = ' UTF. 8 ' ) # gestor de archivo h logging.StreamHandler = () # Crear un controlador de objetos consola format_f = logging.Formatter ( # formato de salida ' % (el asctime) s% (filename) S ' ' [Línea:% (lineno) D]% (levelname) S% (Mensaje) S ' ) f.setFormatter (format_f) # Para pasar un objeto de la salida con formato f h.setFormatter (format_f) # para pasar un formato objeto de salida h log.addHandler (f) # log.addHandler (h) logging.debug ( ' debug - nivel inferior ' ) # bajo nivel de información de depuración logging.info ( ' información - información normales ' ) # normal de información logging.warning ( ' mensaje de advertencia warning-- ' ) # información de alerta logging.error ( ' error - mensaje de error ' ) # mensajes de error logging.critical ( 'critical-- grave error ' ) # mensajes de error de alto nivel crítico
Bienvenido al grupo Todos intercambio QQ estudiar juntos: 482 713 805