Como voltar palavra embaralhada pra normal ?

30/05/2017

1

Seguinte este programa é de criptografia, e no código abaixo ele funciona mas na hora de desencriptar não a volta a palavra para o normal. Por exemplo quando vou criptografar Teste ela fica = Teest, deixando ela embaralhada. Agora queria esta palavra voltasse Teste normal, mas não consegui fazer com que o vetor Array.Sort voltasse a palavra ao normal.

Segue código abaixo
using System;
using System.Security.Cryptography;
using System.Collections.Generic;


namespace aps
{
    class Program
    {
		public static void Main(string[] args)
        {
            /* inicio declaração de variáveis fixas */
            
            // Nome do Programa
            const string nomePrograma = "Criptografando";
            // Nome e RA do Aluno
            const string aluno = "Iury Martins Lima RA: D06395-2";
			
            /* fim declaração de variáveis fixas */
            
            /* inicio programa */
            Inicio:
            
            // Apresentação do Software e Observações
            Console.WriteLine("Ciência da Computação 2º Período Dependência\\n" +nomePrograma+ "\\n" );
            Console.WriteLine("Programa desenvolvido para APS, Aluno: \\n"+aluno);
            Console.WriteLine( "\\nObservações:\\n - Máximo 128 caracteres. \\n - Guarde a chave de segurança.");
            Console.WriteLine("\\nOpções:\\n1 - Criptografar \\n2 - Descriptografar \\n0 - Sair \\n");
            Console.Write("Digite uma opção: ");
            int opcao;
            opcao = Int32.Parse(Console.ReadLine());
            
            if (opcao != 1 && opcao != 2 && opcao != 0){
                Console.WriteLine("Opção Inválida!\\n Pressione ENTER para repetir !");
                Console.ReadLine();
                Console.Clear();
                goto Inicio;
            } 
            else if (opcao == 0) {
                
                fecharAplicacao(nomePrograma);
            
            } 
            else if (opcao == 1){
        
                // inicio script encriptar
                
            Console.Write("Digite a frase: ");
            
            string valorinicio =Console.ReadLine();
            string resultado = " ";
            string [] letras = new string[128];
            
            if (valorinicio.Length > letras.Length) {
            	Console.Write("Inválido, ultrapassou o limite de caracteres (128) !");
            }
            else {
            	char[] array = valorinicio.ToCharArray(); 
            	
            	Array.Sort(array);
            	
            	for (int i = 0; i < array.Length; i++) {
                
            		resultado = resultado + array[i];
                	resultado = resultado.TrimEnd();
                	resultado = resultado.TrimStart();
                	resultado = resultado.Trim();     
            	}

            }
			
            Console.Write("A mensagem criptografada é: " + resultado.ToString());            
            // fim script encriptar
                
              Console.WriteLine("\\n Aperte ENTER para voltar !");
              Console.ReadLine();
              Console.Clear();
              goto Inicio;
            
            } 
            else if (opcao == 2){
                
                // inicio script desencriptar
        
            Console.Write("Digite a mensagem encriptada: ");
            
            string result = Console.ReadLine();
            string [] letras = new string[128];
            if (result.Length > letras.Length) {
            	Console.Write("Inválido, ultrapassou o limite de caracteres (128)");
            }
            else {
            	char[] array = result.ToCharArray();
            	result = " ";
            	Array.Sort(array);
           	 	for (int i = 0; i < array.Length; i++) {
            		result = result + array[i];
           
            
            }
            	Console.WriteLine("Sua mensagem é:  " + result);
                // fim script desencriptar
                Console.WriteLine("FIM!\\n\\n Digite qualquer tecla para voltar!");
                Console.ReadLine();
                Console.Clear();
                goto Inicio;
            }
            
            fecharAplicacao(nomePrograma);
            /* fim programa */
            }
        }
        	public static ConsoleKeyInfo fecharAplicacao(string nomePrograma) {
            
        	Console.Write("Obrigado por usar \\n" +nomePrograma +"\\n Aperte ENTER para sair.");
            return Console.ReadKey(); 
        }
    }
 }s
Responder

Posts

30/05/2017

Daniel Araújo

Boa noite!

Vê esse artigo sobre criptografia. Tem uma classe pronta. Tu pode utilizar ela no teu trabalho.

http://www.linhadecodigo.com.br/artigo/3078/criptografando-dados-com-csharp.aspx

Se a resposta foi útil não esqueça de dar um like!
Responder