Presentando un sistema web para hacer cotizaciones y presupuestos, gratuito y open source

Hoy vengo a presentar un software para realizar cotizaciones o presupuestos, el cual es totalmente gratuito de usar en la nube; así como open source. Es decir, aparte de que puedes usarlo en mi sitio, puedes descargarlo y modificarlo. Características del software No es la gran cosa, pero entre sus principales características encontramos las siguientes: Realizar cotizaciones o presupuestos Estimar el costo requerido, el cual se configura por cada servicio Calcular tiempo requerido por cada servicio Describir características y/o condiciones del trabajo Agregar clientes para ligarlos a las cotizaciones Imprimir la cotización o guardarla como PDF (esto depende del navegador la mayoría de veces) Multiusuario: cualquier usuario puede registrarse y usarlo, así de simple. Eso sí, las cotizaciones, servicios y características son separadas por usuario Totalmente open source Escrito con PHP, utiliza PDO para interactuar con la base de datos Base de datos MySQL Lado del cliente con Vue.JS y Bootstrap Mensaje de agradecimiento, presentación y pie totalmente configurables Se me ocurre que puede servir tanto como para estudiantes que tienen que entregar un proyecto con PHP simple, así como para personas que necesitan un software como estos. Voy a explicar cómo fue creado, en dónde se puede probar y también dónde se puede leer el código fuente. ...

enero 10, 2019 · 4 min · 703 palabras · Parzibyte

Habilitar autenticación y crear administrador en MongoDB

Por defecto, si instalamos el motor de base de datos de MongoDB, no hay seguridad. Es decir, cualquiera puede entrar y hacer lo que se le antoje, pues no hay permisos ni usuarios. Por eso es que hoy veremos: Cómo habilitar la seguridad en MongoDB Cómo crear un usuario administrador De esta manera tendremos nuestra base de datos asegurada, o bueno, al menos tendremos roles y permisos para que no cualquiera se pueda loguear. En otras palabras, en este post trato de explicar cómo asegurar nuestra instalación de MongoDB creando nuestro usuario administrador. ...

diciembre 12, 2018 · 3 min · 582 palabras · Parzibyte

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. Veamos entonces cómo codificar el algoritmo de cifrado César en C. ...

diciembre 11, 2018 · 5 min · 909 palabras · Parzibyte

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. ...

diciembre 10, 2018 · 3 min · 564 palabras · Parzibyte

Implementación del cifrado César en Python

En un post anterior vimos cómo usar ord y chr en Python. Ahora veremos un caso práctico, el cual es aplicarlos para implementar el cifrado César en Python. Seguramente por ahí habrá otras implementaciones, aquí presento la mía, espero que sea clara y explique cómo funciona el método de cifrado César en Python. ...

diciembre 10, 2018 · 3 min · 607 palabras · Parzibyte

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. Si no tienes Python 3, es hora de actualizar. Mira cómo instalarlo aquí. ...

diciembre 6, 2018 · 3 min · 484 palabras · Parzibyte

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 es un estándar que debemos seguir al implementar autenticación de usuarios, por ejemplo. Pero bueno, vamos al tutorial en donde veremos: Cómo instalar la librería de bcrypt usando pip Cómo hashear una contraseña con bcrypt y Python Cómo comprobar si una contraseña coincide con el hash de bcrypt en Python Costos y límites de bcrypt en Python ...

diciembre 6, 2018 · 4 min · 822 palabras · Parzibyte

Desbordamiento de búfer en C

Hoy veremos lo que es un desbordamiento de búfer en C y cómo puede (en su forma más simple) hacer que un usuario aproveche esa vulnerabilidad para explotar nuestro programa. Nota: esto es diferente a cuando se desborda una variable. Lo que es un desbordamiento de búfer Según la Wikipedia: En seguridad informática y programación, un desbordamiento de búfer (del inglés buffer overflow o buffer overrun) es un error de software que se produce cuando un programa no controla adecuadamente la cantidad de datos que se copian sobre un área de memoria reservada a tal efecto (buffer): Si dicha cantidad es superior a la capacidad preasignada, los bytes sobrantes se almacenan en zonas de memoria adyacentes, sobrescribiendo su contenido original, que probablemente pertenecían a datos o código almacenados en memoria. Esto constituye un fallo de programación. En otras palabras le da al usuario de nuestro programa la forma de sobrescribir una variable a su antojo; bueno, no siempre y no tan fácil, pero alguien con tiempo puede encontrarlas y explotarlas. Esto es peligroso en programas que se van para producción, por ejemplo un sistema de la apertura de una puerta o cosas de esas que tienen que ver con la seguridad. ...

noviembre 19, 2018 · 4 min · 777 palabras · Parzibyte

Usar fgets en lugar de scanf en C

Cuando aprendemos algoritmos en C, la forma de escanear variables por teclado es a través de scanf. Si bien este método funciona, existe el peligro de un desbordamiento de búfer. Antes que nada te invito a ver lo que es un desbordamiento de búfer en C. fgets vs scanf en C Después de que leíste lo del desbordamiento es hora de ver por qué es mejor usar fgets en lugar de scanf. Esto es porque fgets escanea una variable pero únicamente hasta donde le digamos; es decir, nosotros le decimos cuánto debe leer (el tamaño). Scanf en cambio no hace eso, lee todo dentro de la posición en memoria. ...

noviembre 19, 2018 · 3 min · 630 palabras · Parzibyte

hash_equals y ataques de temporización (timming attacks) en PHP

Introducción En una ocasión estaba leyendo sobre los ataques de temporización y la recomendación de usar hash_equals en lugar de simples comparaciones con PHP. Más tarde me puse a investigar y supe la razón de usar hash_equals cuando estamos tratando con contraseñas (que al final son cadenas). ...

noviembre 8, 2018 · 4 min · 690 palabras · Parzibyte