Ir al contenido principal

8# - Criptografía: Cifrado por base numérica 2

__Índice__


Introducción

Método de cifrado

Código

Github



__Introducción__

Bien, en el blog anterior hicimos que el usuario nos de una base numérica, y con él, cifrar nuestro texto desde el lenguaje C#.

Pero hay varias cosas que podemos hacer con las bases numéricas, y hoy veremos otro método y esta vez usaremos Java.

__Método de cifrado__

El método que vamos a utilizar es bastante simple, pero interesante. Vamos a cifrar cada letra con una base distinta. Está iniciar de binario (Base 2) hasta la 36 de forma auto-incremental de uno en uno.

Ejemplo: HOLA
H  = 1001000
O     =   2221
L     =   1030
A      =    230

Como podemos ver, H esta en binario, la O en base 3, L en 4 y A en base 5.

Para descifrar tenemos que pasar cada uno a decimal y después a su valor del código ASCII

__Código__

Método/función para cifrar

Lo único que tenemos que pasarle a la función es el texto y esta nos retornará el resultado ya cifrado. Pero... ¿Qué significa el código?

Primero tenemos 3 variables:
° result: guardará el texto cifrado
° letter: arreglo que guardará el texto del usuario, cada letra en un indice.
° numericalBase: Tendrá la base a la que será pasada cada letra
El ciclo recorrerá el arreglo.

      La condición evaluará que la base numérica no pase de 36, en el momento
     que sea más alto regresará  a binario.

      La variable ascii guardará cada letra a su valor de ASCII

     result se le agregara la operación de cambiar cada letra a una base
     numérica
. Con ello utilizamo Integer.toString que recibe un texto y una base.

     Al final solamente aumentamos nuestra variable base en uno.

 Método/Función para descifrar

Lo único que tenemos que pasarle a la función es el texto cifrado y esta nos retornará el resultado ya descifrado.
  Ahora vamos a explicar el código de esta función.

Primero, tenemos 3 variables:
° result: Que hace lo mismo que la variable de arriba.

° letter: igual hace lo mismo, pero en lugar de guardar cada carácter, esta vez queremos tomar el número entero en su base, así que guardaremos en cada indice cada número que este separado por espacios.

° numericalBase: Esto si es igual.

Ahora vamos a recorrer el arreglo, y la condición sirve para no pasarnos más allá de base 36.

En la variable n guardamos la operación de pasar cada número a base 10 (decimal) con Integer.parseInt que le pasamos el texto y la base en la que se encuentra.

Al final la guardamos en la variable result convirtiendo el número en su representación del Código ASCII.

Solamente aumentamos numericalBase en uno.

__Github__


https://github.com/NeoTRAN001/Crypto/tree/master/numericalBase2

Comentarios

Entradas más populares de este blog

3# Criptografía - Cifrado por sustitución Atbash

__ Indice __ ¿Qué es Atbash? Proceso de cifrado Proceso de descifrar  Código Github ¿Qué es Atbash? Atbash es un método de cifrado para el alfabeto hebreo, por lo tanto entra en la clasificación de           - Cifrado Clásico - se le conoce también como el método espejo, pues consiste en sustituir en la que la primera letra (A) será sustituida por la última (Z), la segunda por la penúltima (B - Y) y así sucesivamente. Proceso de cifrado Vayamos a probarlo, vamos a cifrar nuestra palabra de costumbre RegularWeb: R  =   I E  =  V G  =  T U  =  F L  =  O                  Resultado : IVTFOZIDVY A  =  Z R  =  I W =  D E  =  V B  =  Y Proceso de descifrar  Para descifrar es el mismo procedimiento. R  =   I E  =  V G  =  T U  =  F L  =  O                  Resultado : REGULARWEB A  =  Z R  =  I W =  D E  =  V B  =  Y Código Github   https://github.com/NeoTRAN001/Crypt

2# Criptografía - Polybios

__ Indice __ ¿Qué es Polybios? Proceso de cifrado Proceso de descifrar Código Github __ ¿Qué es Polybios? __ Es un sistema de cifrado en el que se coloca todo el alfabeto en una matriz, y cada letra tiene una posición en la que será convertida.  Es considerado el algoritmo de cifrado más antiguo que se tiene registro •Su nombre se le da por el Historiador griego Polybios • Alrededor del año 150 a. C. __ Proceso de cifrado __ Bien, el proceso de cifrado es bastante fácil, tenemos nuestra matriz bidimensional , si queremos traducir el carácter - ? - nos da como resultado [ 0, 0 ] Y pues, eso es todo... Vayamos a cifrar la palabra Hola H = [4, 9]    o = [1 , 9]    l  = [1, 5]     a = [0, 4]  Resultado: 49191504 __ Proceso de descifrar __  Ahora si queremos el proceso inverso, solamente tenemos, tenemos que mandarle las posiciones y este nos devolverá el carácter [4, 9] = H     [1 , 9] = o    [1, 5] = l    [0

Sockets en C#

__ Índice __ ¿Qué son los sockets en programación? Ejemplo en C# Github __ ¿Qué son los socket en programación? __ Un socket es un método de comunicación entre un programa cliente y un servidor. Entonces podemos decir que los sockets, son el "tunel" de comunicación entre dos aplicaciones. __ Ejemplo en C# __ Servidor  Creamos un nuevo proyecto en consola que será el código del servidor Importamos las librerías necesarias para los sockets Declaramos dos variables, una será la dirección del Server , ya que estamos haciendo todo en nuestra pc la dirección debe de ser la local, localhost o 127.0.0.1 La otra variable será el puerto de conexión, es recomendable seleccionar un puerto alto. Es por eso que las aplicaciones utilizan 8080 . Ahora tenemos que crear un objeto de tipo Socket, que nos pide tres parámetro: 1- Esquema del tipo de diccionario: AddressFamily.InterNetwork dice que utilizará una dirección IP