Chr y ord en Python

Funciones ord y chr en Python

En Python existen las funciones ord y chr que sirven para trabajar con caracteres y su representación en Unicode. La primera, ord, recibe un carácter y regresa un entero que representa el número unicode que representa a ese carácter. La segunda, chr, sirve para lo inverso; recibe un entero y devuelve un carácter.

Chr y ord en Python

Chr y ord en Python

Veremos también cómo podemos rotar una cadena según el alfabeto (algo así como el ROT13 o cifrado César) y también cómo hacer un traductor de letras a ASCII.

Vamos a ver los usos y formas de trabajar con las funciones ord y chr en Python.

(más…)

Usos y ejemplos de split en Python para separar cadenas

En la mayoría (si no es que en todos) los lenguajes de programación existe la función split, cuya forma de trabajar es tomar una cadena y regresar un arreglo de esa cadena separada por tokens.

Si tenemos una cadena como "Hola mundo" y usamos el espacio " " como delimitador, al usar split nos devuelve un arreglo o lista que tiene ["Hola", "Mundo"]. Como delimitador se puede usar cualquier cadena o carácter.

Ahora veamos más ejemplos de split, así como su uso en Python.

(más…)

Hashear contraseñas en Python usando bcrypt

Hashear contraseñas con Python y bcrypt

Anteriormente vimos cómo generar una contraseña segura en Python cuando necesitamos un token o una clave segura, ahora veremos cómo hashear una contraseña en Python, usando bcrypt.

El algoritmo de bcrypt es usado también por PHP al hashear contraseñas. Igualmente está disponible en Go.

Hashear contraseñas en Python usando bcrypt

Hashear contraseñas en Python usando bcrypt

Hashear contraseñas es un estándar que debemos seguir al implementar autenticación de usuarios, por ejemplo. Pero bueno, vamos al tutorial en donde veremos:

  1. Cómo instalar la librería de bcrypt usando pip
  2. Cómo hashear una contraseña con bcrypt y Python
  3. Cómo comprobar si una contraseña coincide con el hash de bcrypt en Python
  4. Costos y límites de bcrypt en Python

(más…)

Cadena aleatoria segura criptográficamente con Python

Generar contraseña o cadena segura en Python

Con el lenguaje de programación Python es muy fácil generar un token o cadena segura, hablando criptográficamente.

Recientemente se ha introducido el módulo secrets que nos permite generar una contraseña aleatoria y segura para usarla como token, clave de encriptación o cosas de esas.

Cadena aleatoria segura criptográficamente con Python

Cadena aleatoria segura criptográficamente con Python

Si no tienes Python 3, es hora de actualizar. Mira cómo instalarlo aquí.

(más…)

Comprobar si es correo electrónico en Python

Ya vimos cómo validar un correo o email en JavaScript. Ahora hagamos lo mismo con Python, veamos una forma de saber si el usuario puso un correo válido.

De nuevo lo digo, aunque el correo parezca válido, no lo sabremos hasta que lo comprobemos enviando un mensaje con un token o algo similar; pero bueno, el punto es ver si un correo es válido según su forma como cadena.

Al final, un usuario podría poner uno que sea temporal, o que sea falso, por lo que no importa mucho la validación, sino la comprobación de la existencia.

(más…)

Algoritmo de búsqueda binaria en listas y arreglos de Python

Introducción

Continuamos con la serie de tutoriales acerca de la implementación del algoritmo de búsqueda binaria en muchos lenguajes de programación. Hoy es el turno de un lenguaje que uso para automatizar cosas: Python. En Python los arreglos son conocidos como listas. Veremos cómo implementar el algoritmo de búsqueda binaria tanto recursivamente como con un ciclo while; esto último también es llamado búsqueda binaria secuencial.

Realmente, cuando conocemos el algoritmo, su aplicación en un lenguaje de programación es sencillo. Pero bueno, vamos al punto. En resumen:

  • Veremos cómo implementar el algoritmo de búsqueda binaria en listas de Python, usando recursividad
  • Aplicaremos el algoritmo de búsqueda binaria en arreglos de Python (lo mismo que las listas), pero sin usar recursividad.

(más…)