Cifrado César en C

Algoritmo de cifrado César en C

Anteriormente vimos cómo implementar el algoritmo de cifrado de César en Python, ahora veremos cómo cifrar y descifrar una oración usando el cifrado César igualmente, pero en el lenguaje de programación C.

Implementar el algoritmo en C es un poco más complicado que en otros lenguajes, sobre todo por la manipulación de cadenas, pero eso no es un impedimento.

Cifrado César en C

Cifrado César en C

Veamos entonces cómo codificar el algoritmo de cifrado César en C.

(más…)

Valor absoluto en C, o convertir número a positivo

Convertir número negativo a positivo en C

En este post veremos cómo convertir un número negativo (ya sea entero o flotante) a positivo en C. Incluso si el número ya es positivo, no pasará nada ni habrá errores al convertirlo utilizando la función abs, fabs y fabsf.

Valor absoluto en C, o convertir número a positivo

Valor absoluto en C, o convertir número a positivo

Para esto, usaremos una función matemática (o lo que sea) llamada valor absoluto, que devuelve la distancia entre dos puntos de una recta; sin importar si uno de ellos es negativo, porque la distancia siempre es positiva.

(más…)

Equivalentes a ord y chr en C

Hoy estaba trabajando con C y al buscar las funciones ord y chr (como las que existen en Python) me di cuenta de que no existen.

Todo esto es debido a que ord y chr podrían ser fácilmente remplazadas por operaciones del lenguaje, pues al final, una variable de tipo char es un entero. Lo que explico es lo que vimos cuando convertimos un entero a carácter, o un carácter a entero.

Veamos cómo podemos tener un equivalente a chr y ord en C.

(más…)

Comprobar arquitectura de PHP

Saber si tenemos versión de 32 o 64 bits en PHP

En algunos momentos necesitamos saber si tenemos instalada una versión de PHP de 32 bits o de 64 bits. Independientemente de nuestro procesador o nuestro sistema operativo, podemos tener una versión de PHP distinta en arquitectura.

Por ello, en este post veremos cómo saber si tenemos instalada una versión de 32 o 64 bits; o en otras palabras, cómo saber la arquitectura de PHP.

(más…)

Conectar Go y MySQL. Crud y ejemplos de conexión

Conectar GoLang y MySQL

Hoy veremos cómo consumir una base de datos de MySQL o MariaDB (crear un CRUD) utilizando uno de mis lenguajes de programación favoritos: Go, también conocido como GoLang.

Lo que haremos será un CRUD a través de la consola; esto para mantener la simplicidad, pero recuerda que Go sirve para muchísimas cosas más (Sublime POS está escrito en Go).

Conectar Go y MySQL. Crud y ejemplos de conexión

Conectar Go y MySQL. Crud y ejemplos de conexión

Recuerda que para esto debes tener instalado MySQL, si lo deseas, puedes instalarlo con XAMPP. También recuerda instalar y configurar Go.

Por otro lado, te invito a leer algunos ejercicios de MySQL y cómo conectarte a la CLI del servidor MySQL.

(más…)

Explicación del cifrado César

Este cifrado utiliza un cifrado por sustitución, en donde cada letra es remplazada por otra que se encuentre a N posiciones de distancia. Por poner un ejemplo, si se rota 1 vez, los resultados son:

Cadena original: parzibyte

Cadena rotada: qbsajczuf

La sustitución se hace hacia la derecha. La p se convierte en q, la a en b y así sucesivamente. Para decodificar se rota hacia la izquierda con el mismo número de rotaciones; la q se convierte en p, la b en a y así hasta terminar.

Puedes leer más en la wikipedia, pero en resumen, Julio César lo usaba rotando 3 veces las letras. Se supone que en aquellos tiempos poca gente sabía leer, y la que sabía leer no se imaginaba cómo hacer el criptoanálisis.

(más…)

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…)

Eliminar todos los datos de una tabla en CodeIgniter

En un trabajo que estoy realizando intenté hacer un delete de este tipo en CodeIgniter:

$this->db->delete("la_tabla");

Cosa que permitiría eliminar todos los elementos de una tabla, pero no fue así y en su lugar salió el mensaje:

Deletes are not allowed unless they contain a “where” or “like” clause.

Que quiere decir que las eliminaciones no están permitidas si no les pones un where o un like. Pero si ejecutamos:

delete from mi_tabla;

En una consola de MySQL, todo va bien. Bueno, no importa, el problema fue con CodeIgniter y la solución es realmente sencilla.

(más…)

Desactivar editor gutenberg de WordPress

Desactivar Gutenberg en nueva versión de WordPress

Lo que sea de cada uno, pero personalmente no me gusta el nuevo editor de WordPress llamado Gutenberg, por lo que me puse a investigar cómo podemos desactivar Gutenberg en nuestra instalación fresca de WP.

Para la gente que es más de “arrastrar y soltar” (o para los “programadores web” de hoy en día) viene bien, pero si se está acostumbrado al viejo editor, no nos acostumbraremos tan rápido.

En fin, eso no importa mucho. Si te gusta, déjalo así. Si no, entonces ahorita verás cómo puedes desactivar el editor Gutenberg.

(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…)