Mostrando entradas con la etiqueta Encriptación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Encriptación. Mostrar todas las entradas

Código Polibio




Rostro de  escultura de Polibio, 
Viena, Austria


Polibio fue un historiador griego (208 a. C. - 126 a. C.). Enviado como rehén a Roma historió los hechos de ese país. Es considerado uno de los maestros del relato historicofilosófico por su Historia general de Roma.

Polibio nació en Megalópolis, Grecia, y fue deportado a Roma luego de la conquista de su lugar natal. Escribió la primera gran historia apologética de los romanos. Prontamente apareció en los circuitos aristocráticos de los Escipión, ilustre familia patricia de la Antigua Roma.


En su libro Historias hace mención al Método de cifrado atribuido a sus contemporáneos Cleoxeno y Democleto, basado en coordenadas. Aunque parece ser que la historia ha querido atribuir la invención del método a Polibio.
Se sustituye el valor alfabético por el de dos cifras que corresponden al de una tabla previamente fabricada.
El alfabeto griego utilizado inicialmente esta compuesto de 24 letras, con lo cual, la tabla de coordenadas contiene 5 columnas y 5 líneas. Políbio propuso utilizar la 25 coordenada como inicio y final de una transmisión.
En el alfabeto latino, existen 26 letras por lo cual una misma coordenada se utiliza para dos letras. La tabla de coordenadas mas común es la que cuenta con K/Q en la misma coordenada (semejanza de sonidos) pero, también existe alguna en la que se utiliza la misma coordenada para I/J.







Polibio aparece en los libros de Criptografía como el inventor de un procedimiento para escribir las letras como pares de números. Mediante una tabla se hace corresponder a cada carácter de un alfabeto de 25 letras un par de números. La tabla de Polibio tiene la forma siguiente:


12345
1ABCDE
2FGHI/JK
3LMNOP
4QRSTU
5VWXYZ


Por ejemplo, la palabra Polibio se escribiría 35 34 31 24 12 24 34.




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Codigo_Polibio
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string textoentrada;

private void button1_Click(object sender, EventArgs e)
{
textoentrada = textBox1.Text;

Dictionary<string, string> polibio = new Dictionary<string, string>
{
{"a","11" }, {"b","12" }, {"c","13" }, {"d","14" }, {"e","15" },
{"f","21" }, {"g","22" }, {"h","23" }, {"i","24" }, {"j","24" },
{"k","25" }, {"l","31" }, {"m","32" }, {"n","33" }, {"o","34" },
{"p","35" }, {"q","41" }, {"r","42" }, {"s","43" }, {"t","44" },
{"u","45" }, {"v","51" }, {"w","52" }, {"x","53" }, {"y","54" },
{"z","55" },
};
foreach (char letra in textoentrada)
{
string resultado = polibio[letra.ToString()].Trim();
textBox2.AppendText(resultado);
}
}

private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}

private void button3_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
}
}

}


Hash - MD5





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Security.Cryptography;

namespace MD5_V._1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}

private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Text = "";
}

private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text !="")
{
HashAlgorithm codigo = new MD5CryptoServiceProvider();
// Byte[] textoOriginal = ASCIIEncoding.Default.GetBytes(textBox1.Text); //Usar ASCII o UTF8
Byte[] textoOriginal = UTF8Encoding.Default.GetBytes(textBox1.Text);
Byte[] valor = codigo.ComputeHash(textoOriginal);
textBox2.Text = BitConverter.ToString(valor).ToLower();
}
else
MessageBox.Show("Insertar el texto a codificar", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}

}



Hash - SHA1




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Security.Cryptography;

namespace SHA1_V._1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
{
HashAlgorithm codigo = new SHA1CryptoServiceProvider();
// Byte[] textoOriginal = ASCIIEncoding.Default.GetBytes(textBox1.Text); //Usar ASCII o UTF8
Byte[] textoOriginal = UTF8Encoding.Default.GetBytes(textBox1.Text);
Byte[] valor = codigo.ComputeHash(textoOriginal);
textBox2.Text = BitConverter.ToString(valor).ToLower();
}
else
MessageBox.Show("Insertar el texto a codificar", "Error",MessageBoxButtons.OK,MessageBoxIcon.Information);
}

private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}

private void button3_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Text = "";
}
}
}


Encriptación con Nuget Eramake.eCryptography




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Encriptacion_II
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private void encriptar_Click(object sender, EventArgs e)
{
textencriptado.Text = Eramake.eCryptography.Encrypt(entrada.Text);
}

private void desencriptar_Click(object sender, EventArgs e)
{
textdesencriptado.Text = Eramake.eCryptography.Decrypt(textencriptado.Text);
}

private void button1_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}


Encriptación al siguiente carácter ASCII






using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace numero1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Variables
string f1, f2 = "", c;
int i, p;

private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}

//Entrada

private void textBox1_TextChanged(object sender, EventArgs e)
{
f1 = entrada.Text;
}

//Proceso

Encriptación / Desencriptación







Sencillo programa que nos permite cifrar y descifrar un texto a fin de darle mayor privacidad.
Le damos salida a un fichero de texto, por si necesitamos enviar el texto cifrado por correo electrónico o cualquier otro medio. Quien reciba el texto cifrado debe disponer del programa para su desencriptado. Basado en el cifrado Cesar.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections;
using System.IO;

namespace Encriptacion_1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string entrada, salida;
entrada = textBox1.Text;
salida = "";
// enviamos el texto cifrado a un fichero de texto.
using (StreamWriter sw = new StreamWriter("textocifrado.txt"))
{

salida = encriptacion(entrada);
textBox2.Text = (salida);
  sw.WriteLine(salida);
}

}

private void button2_Click(object sender, EventArgs e)
{
string entrada, salida;
entrada = textBox2.Text;
salida = encriptacion(entrada);
textBox3.Text = desencriptacion(entrada);
}

private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}