You are on page 1of 3

using System;

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

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

private void button1_Click(object sender, EventArgs e)


{
String duLieuCanGM = "";
String matKhauGM = "";
duLieuCanGM = String.Join(String.Empty,
Encoding.UTF8.GetBytes(tbGiaTriMH.Text)
.Select(byt => Convert.ToString(byt, 2).PadLeft(8, '0')));
matKhauGM = String.Join(String.Empty,
Encoding.UTF8.GetBytes(tbMatKhauMH.Text)
.Select(byt => Convert.ToString(byt, 2).PadLeft(8, '0')));
String matKhauMoi = "";
if (duLieuCanGM.Length > matKhauGM.Length)
{
for (int i = 0; i < duLieuCanGM.Length; i++)
{
matKhauMoi += matKhauGM[i % matKhauGM.Length].ToString();
}
}
else
{
matKhauMoi = matKhauGM.Substring(0, duLieuCanGM.Length);
}
String kqGM = "";
for (int i = 0; i < duLieuCanGM.Length; i++)
{
if (duLieuCanGM[i].ToString().Equals(matKhauMoi[i].ToString()))
kqGM += "0";
else
kqGM += "1";
}
//biu din kt qu m ha
List<byte> boDem = new List<byte>();
for (int i = 0; i < kqGM.Length; i += 8)
{
boDem.Add(Convert.ToByte(kqGM.Substring(i, 8), 2));
}
String kqMHCuoiCung = Encoding.UTF8.GetString(boDem.ToArray());
tbKetQuaGM.Text = kqMHCuoiCung;
}
private void btMaHoa_Click(object sender, EventArgs e)
{
//Kim tra d liu u vo
if(tbGiaTriMH.Text.Length==0)
{
MessageBox.Show("Bn phi nhp vo d liu cn m ha");
tbGiaTriMH.Focus();
return;
}
//chuyn d liu cn m ha thnh chui bit
String duLieuCanMH = "";
String matKhauMH = "";
duLieuCanMH = String.Join(String.Empty,
Encoding.UTF8.GetBytes(tbGiaTriMH.Text)
.Select(byt => Convert.ToString(byt, 2).PadLeft(8, '0')));
matKhauMH= String.Join(String.Empty, Encoding.UTF8.GetBytes(tbMatKhauMH.Text)
.Select(byt => Convert.ToString(byt, 2).PadLeft(8, '0')));
String matKhauMoi = "";
if(duLieuCanMH.Length>matKhauMH.Length)
{
for(int i=0;i<duLieuCanMH.Length;i++)
{
matKhauMoi += matKhauMH[i % matKhauMH.Length].ToString();
}
}
else
{
matKhauMoi = matKhauMH.Substring(0, duLieuCanMH.Length);
}
//m ha
String kqMH = "";
for(int i=0;i<duLieuCanMH.Length;i++)
{
if (duLieuCanMH[i].ToString().Equals(matKhauMoi[i].ToString()))
kqMH += "0";
else
kqMH += "1";
}
//biu din kt qu m ha

List<byte> boDem = new List<byte>();


for(int i=0;i<kqMH.Length;i+=8)
{
boDem.Add(Convert.ToByte(kqMH.Substring(i, 8), 2));
}
String kqMHCuoiCung = Encoding.UTF8.GetString(boDem.ToArray());
tbKetQuaMH.Text = kqMHCuoiCung;
}
}
}

You might also like