Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Pedro Yago Rabelo de Sousa

Meu código de criptografia

Recommended Posts

Fiz uma biblioteca para uso de criptografia de textos e arquivos, fiz um programa para exemplificar mas somente texto ainda vou fazer a parte de mídias.

O programa funciona da seguinte maneira:

1 - O usuário entra com uma senha, a mesma sera usada como chave.

2 - O programa vai gerar uma matriz com 256x256 que leva todos os caracteres da tabela ASCII

3 - A senha sera usada para determinar a linha ta matriz.

4 - O texto de entrada ou a cadeia de bytes sera usada para determinar a coluna da matriz.

Segue a classe:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace segurança
{
    public enum Modo { Crypta, Descrypta };
    public class Criptografia
    {
        private List<List<char>> tabela;
        private string key;

        public Criptografia(string key)
        {
            this.key = key;
            GeraTabela();
        }
        private void GeraTabela()
        {
            tabela = new List<List<char>>();
            for (int linha = 0; linha < 256; linha++)
            {
                tabela.Add(new List<char>());
                for (int coluna = 0; coluna < 256; coluna++)
                {
                    int letra = (char)(coluna + 1 + linha);
                    if (letra >= 256)
                        letra = letra - 256;
                    tabela[linha].Add((char)letra);
                }
            }
        }
        public object[] Modifica(object[] alvo, Modo modo = Modo.Crypta)
        {
            int contadorLinha = 0;
            for (int contador = 0; contador < alvo.Length; contador++)
            {
                if (contadorLinha == key.Length)
                    contadorLinha = 0;
                if (modo == Modo.Crypta)
                    alvo[contador] = Encrypta(alvo, contador, contadorLinha);
                if (modo == Modo.Descrypta)
                    alvo[contador] = Descrypta(alvo, contador, contadorLinha);
                contadorLinha++;
                GC.Collect();
            }
            return alvo;
        }
        private object Encrypta(object[] alvo, int contador, int contadorLinha)
        {
            return tabela[key[contadorLinha]][(int)alvo[contador]];
        }
        private object Descrypta(object[] alvo, int contador, int contadorLinha)
        {
            return tabela[key[contadorLinha]].IndexOf((char)alvo[contador]);
        }
    }
}

ja diminui um pouco o código, podem me ajudar? caso tenham algumas duvidas, a ideia de postar aqui é para ensinar. afinal é algo bem simples.

Editado por Pedro Yago Rabelo de Sousa
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×