• Cifrar y descifrar datos usando algoritmos de clave asimétrica con Java

    java planeta-codigo

    El lenguaje de programación Java ofrece clases e implementa varios algoritmos relacionados con la criptografía y seguridad. Con unas pocas líneas de código es posible listar los algoritmos soportados, generar claves, cifrar datos y descifrar datos. Soporta tanto criptografía de clave simétrica donde se usa la misma clave tanto para cifrar como para descifrar y como en este artículo se muestra criptografía asimétrica en la que se utiliza dos claves una la clave pública para cifrar datos y la clave privada para descifrar los datos.
    Continuar leyendo...

  • Cifrar y descifrar datos usando algoritmos de clave simétrica con Java

    java planeta-codigo

    Algunos datos son sensibles y necesitan especial protección como los datos personales, bancarios o relacionados con la seguridad como contraseñas. Para minimizar los riesgos de seguridad en caso de un fallo se suele cifrar los datos al persistirlos en la base de datos de modo que en caso de la base de datos sea filtrada los datos sigan protegidos siempre y cuando la clave que permite descifrarlos no se ha filtrado también. Java ofrece clases en su JDK que implementan los principales algoritmos para cifrar y descifrar datos.
    Continuar leyendo...

  • Análisis del juego de sigilo e infiltración táctica Metal Gear Solid V

    juegos

    De los juegos que he jugado en la PlayStation 4 el Metal Gear Solid V me ha parecido uno de los mejores en el aspecto de diversión y mecánicas diferentes. Ofrece gran libertad de movimientos y formas de afrontar o completar las misiones y en el que aún habiendo jugado ya muchas horas puede descubrirse algo nuevo. Además implementa una inteligencia artificial adaptativa única que hace el juego especial para dificultar nuestra forma de juego y obligarnos a no siempre usar la misma forma de combate. Un juego muy rejugable en el que cada partida incluso en la misma misión siempre tiene algo diferente ya sea por la climatología o por elegir otra ruta de infiltración.
    Continuar leyendo...

  • Los algoritmos de hashing criptográficos, cálculo de hashes con comandos de GNU/Linux y Java

    java planeta-codigo

    Los algoritmos de hashing criptográficos son fundamentales en la firma digital y criptografía, pero también tienen su utilidad por sí mismos para la comprobación de la integridad. Se basan en un algoritmo y funciones matemáticas que transforman un conjunto de bytes en un número binario de longitud fija que constituye el hash digital del contenido. Hay varios algoritmos de hashing criptográficos y en GNU/Linux varios comandos que permiten calcular y comprobar el hash de un archivo. En los lenguajes de programación como en el caso de Java se ofrecen clases y métodos para la generación y cálculo de hashes en los algoritmos soportados.
    Continuar leyendo...

  • Los códigos de barras, códigos QR y lectores hardware de códigos

    hardware planeta-codigo software

    Los códigos de barras y códigos QR tienen muchas aplicaciones y son numerosos ámbitos en los que se usan por las ventajas que proporcionan, al ser una imagen legible por las máquinas permiten automatizar de forma rápida y sencilla una tarea tan anodina y mundana como la introducción de los códigos en la computadora. Los lectores hardware de códigos de barras y códigos QR funcionan realmente como un teclado, no necesitan de ningún controlador ni programa y son compatibles con cualquier sistema operativo. Hay varios estándares de códigos de barras y códigos QR con su propia representación gráfica impresa o gráfica, en función del estándar codifica diferente información numérica, alfanumérica y limitada o sin limitación en la cantidad de información.
    Continuar leyendo...

  • Introducción, conceptos y uso básico del broker de mensajes Apache Kafka

    java planeta-codigo programacion software

    La comunicación mediante mensajes permite desacoplar las aplicaciones y procesar las peticiones de forma asíncrona. Apache Kafka es un broker de mensajes muy popular por su escalabilidad, tolerancia a fallos y adaptabilidad para ser usado en diferentes casos de uso. Es una herramienta compleja dado el número de casos de uso que soporta y la necesidad de ser distribuida para dotarse de escalabilidad y tolerancia a fallos.
    Continuar leyendo...

  • Los juegos de Epic Games y GOG en GNU/Linux con el lanzador Heroic Games Laucher

    gnu-linux juegos planeta-codigo

    Que aún GNU/Linux es un sistema minoritario y lo seguirá siendo es una realidad pero que en GNU/Linux no se puede jugar a los mismos juegos de Windows es ya un mito. El cliente de Steam para GNU/Linux da acceso al amplio catálogo de juegos de esta tienda donde la mayoría de juegos se puede jugar. En este artículo muestro como instalar y usar el cliente Heroic Games Launcher para las tiendas Epic Games y GOG que combinado con los juegos que regala semanalmente la Epic Games da acceso a un buen catálogo de juegos.
    Continuar leyendo...

  • Construir, desplegar y observar aplicaciones de forma uniforme con Waypoint

    gnu-linux planeta-codigo software programacion

    Cuando se tienen muchas aplicaciones si no se tienen unos procesos definidos seguramente cada una requerirá su propio proceso, herramientas de construcción y despliegue. Estas diferencias añaden complejidad y no es deseable para tener un flujo de trabajo ágil. La herramienta Waypoint de HashiCorp permite construir una aplicación independientemente del lenguaje en el que esté implementada, desplegar en diferentes proveedores de computación en la nube y observar las aplicaciones una vez desplegadas, todo con la misma herramienta y de forma uniforme que simplifica en gran medida el flujo de desarrollo.
    Continuar leyendo...

  • Construir la imagen del contenedor de la aplicación usando Buildpacks

    java planeta-codigo programacion

    Los sistemas y servicios son significativamente complejos por sí mismos, además en sistemas que se componen de varios de ellos cada uno con sus diferencias añade más complejidad al sistema. Eliminar toda la complejidad posible y simplificar el sistema es algo deseable. La herramienta Buildpacks aplica a la construcción de las aplicaciones lo que los contenedores aplican en tiempo de ejecución de las mismas, uniformizando las aplicaciones independientemente del lenguaje y plataforma que usen.
    Continuar leyendo...

  • Obtener valores de configuración antes iniciar una aplicación con Spring Boot

    java planeta-codigo

    El mecanismo de configuración de Spring Boot es muy flexible y por otro lado Spring Boot proporciona varias formas de extensión. En el proceso de inicialización de la aplicación Spring Boot permite recibir eventos y realizar las acciones que se deseen. Uno de estos eventos es ApplicationEnvironmentPreparedEvent antes de inicializar el contexto y crear los beans del contenedor de dependencias, cyando se lanza este evento es posible acceder a las propiedades de configuración.
    Continuar leyendo...

  • Hemeroteca #22

    blog planeta-codigo

    Este 2023 he escrito menos artículos que años anteriores, «solo» 52 artículos. Más allá del número de artículos pocas novedades más. Después de 13 años con un blog sigo con ganas de continuar escribiendo artículos y compartiendo lo que aprendo, a pesar de la gran cantidad de tiempo que me requiere.
    Continuar leyendo...

  • Crear un bean según el contexto donde se inyecte con Spring

    java planeta-codigo

    Spring permite inyectar un bean construido utilizando información del contexto o clase donde se inyecte. Una caso de uso para esta funcionalidad es eliminar la habitual forma estática de inyectar las referencias a un Logger de una librería de logging, la inyección según el contexto permite proporciona el colaborador del Logger no como una variable estática sino en el constructor igual que otros colaboradores. Los beneficios son dos, se elimina una referencia estática que facilita los teses unitarios y se elimina un poco de código repetido en cada clase donde se use un Logger.
    Continuar leyendo...

  • Radar tecnológico y otras fuentes de información sobre programación

    planeta-codigo programacion

    Conocer que herramientas hay disponibles permite elegir aquellas que más apropiadas sean para resolver un problema, las herramientas no son el fin pero si un medio determinante. Las herramientas usadas diariamente en el trabajo no permiten experimentar y conocer otras nuevas herramientas que en algún momento puedan pasar a considerarse una mejor opción. El radar tecnológico de Thoughtworks hace un resumen al menos dos veces al año a tener en cuenta con los cambios en las herramientas, además permite conocer nuevas herramientas.
    Continuar leyendo...