Пример #1
0
        private void btnDecriptografar_Click(object sender, EventArgs e)
        {
            txtLegivel.Text = "";
            Criptografadora cripto = new Criptografadora(txtSecreto.Text);
            string binario = cripto.Decimal2Binary();
             //txtLegivel.Text = binario + "     binario \r\n";

            MapaDeBits mdb = new MapaDeBits(txtChaveDecriptografadora.Text);
            chave = mdb.GeraChave();

            string textoSemPermutacao = ""; //Executa a operação XOR 16 vezes
            for (int i = 0; i < 16; i++)
            {
                textoSemPermutacao = cripto.DesfazPermutacaoComChave(binario, chave);
            }
             //txtLegivel.Text += textoSemPermutacao + "     texto sem permutação \r\n";
            char[] binary2character = cripto.Binary2Char(textoSemPermutacao);
            Byte[] substituicaoDesfeita = cripto.DesfazSubstituicao(binary2character);

            string decimalParaBinario = cripto.Decimal2Binary(substituicaoDesfeita);

            char[] binariosLegiveis = cripto.Binary2Char(decimalParaBinario);
            //char[] binariosLegiveis = cripto.Binary2CharDecriptar(decimalParaBinario);

            for (int i = 0; i < binariosLegiveis.Length; i++)
            {
                if (Convert.ToInt32(binariosLegiveis[i]) == 13)
                    txtLegivel.Text += "\r\n";

                if (Convert.ToInt32(binariosLegiveis[i]) == 20)
                    continue;

            // Na versão 1.1 a logica XOR originou o caracter 150
                //if (Convert.ToInt32(binariosLegiveis[i]) == 150)
                //    txtLegivel.Text += " ";

                //if (Convert.ToInt32(binariosLegiveis[i]) == 139)
                //    txtLegivel.Text += " ";

                txtLegivel.Text += binariosLegiveis[i].ToString();
            }
        }
Пример #2
0
        private void btnPlano2Cripto_Click(object sender, EventArgs e)
        {
            if (txtChaveCriptografar.Text.Length >= 4 && txtChaveCriptografar.Text.Length <= 8)
            {
                txtCriptografado.Text = "";
                Criptografadora cripto = new Criptografadora(txtTplano.Text);
                Byte[] ansi = cripto.FazSubstituicao();

                string binario = cripto.Decimal2Binary();

                //txtCriptografado.Text =  binario + "    binario \r\n";

                MapaDeBits mdb = new MapaDeBits(txtChaveCriptografar.Text);
                string chave = mdb.GeraChave();

                string textoPermutado = ""; //Executa a operação XOR 16 vezes
                for (int i = 0; i < 16; i++)
                {
                    textoPermutado = cripto.PermutaComChave(binario, chave);
                }

                //txtCriptografado.Text += textoPermutado + "    texto permutado \r\n";

                char[] textoCriptografado = cripto.Binary2Char(textoPermutado);

                FileStream fs = new FileStream("cripto.txt", FileMode.Create);
                StreamWriter sw = new StreamWriter(fs);

                for (int i = 0; i < textoCriptografado.Length; i++)
                {
                    txtCriptografado.Text += textoCriptografado[i];
                    sw.Write(textoCriptografado[i]);
                }

                sw.Close();

                MapaDeBits mbits = new MapaDeBits(txtChaveCriptografar.Text);
                //mbits.PintaPixelsAleatoriamente();

                if (mbits.ConverteTextoEmPixels())
                {
                    MessageBox.Show("Arquivo criado com sucesso.");
                    //btnPlano2Cripto.Enabled = false;
                }
            }

            else
            {
                MessageBox.Show("A chave deve ter no mínimo 4 e no máximo 8 caracteres.");
            }
        }