ASP.NET Blog Engine – Parte 3 - Revista Easy .Net Magazine 28
Neste artigo veremos a criptografia e seus vários conceitos como chaves públicas e privadas, hashing, armazenamento, etc. Modificaremos o projeto do blog para implementar a criptografia na área de login e senha.
ArtigosCanal MaisASP.NET Blog Engine – Parte 3 - Revista Easy .Net Magazine 28
ASP.NET Blog Engine –
Parte 3 Hoje
finalizamos a série de artigos sobre a criação de uma ferramenta de
gerenciamento de blogs apresentando recursos para fortalecer a segurança do
acesso aos blogs criados, através do uso de senhas criptografadas. Em se
tratando de desenvolvimento de software o assunto de criptografia é complexo
porque envolve vários conceitos como chaves públicas e privadas, hashing,
armazenamento, etc. Por outro
lado, o .NET disponibiliza muitos recursos para facilitar este trabalho, então
neste artigo alguns destes serão expostos para que o desenvolvedor consiga
iniciar o desenvolvimento neste assunto e através do exemplo prático, conhecer
uma forma de implementar criptografia de senhas. Continuando com o projeto dos
artigos anteriores, este vai ser modificado para que ao ser criado um novo blog
os dados do usuário e senha sejam criptografados.
Em que
situação o tema é útil O tema de
segurança e criptografia está entre os mais importantes para desenvolvedores
principalmente na Web, que é um ambiente hostil e sujeito a todo tipo de
ataque. Com este artigo serão passados os passos iniciais para proteger senhas
com o C# em uma situação real. Os aspectos e conceitos envolvidos requerem
muita atenção e são um pouco complexos para quem está dando os primeiros
passos. No artigo serão dados os primeiros passos e apresentados os caminhos a
serem seguidos para um código e aplicação seguros.
Aplicações executadas
no ambiente da Internet estão sujeitas a muitos problemas de segurança. Para
dar alguns exemplos, é importante assegurar que os dados que são usados e
manipulados por esta estejam seguros. Assim, informações como senhas, números
de cartão de crédito e dados de login são fortes candidatos a serem alvo de
ataques e os primeiros que precisam ser protegidos pelos desenvolvedores para
evitar problemas para os seus usuários e dores de cabeça para ele próprio.
Esta proteção passa pela correta construção
da aplicação para que os dados armazenados na base de dados não sejam acessados
indevidamente, além de envolver aspectos como o tratamento de erros que possam
ocorrer para que detalhes da implementação do código não sejam expostos,
limitação de dados que podem ser digitados nos campos e também com um eficiente
controle do acesso sendo feito através da definição de senhas fortes e usuários
com acesso restritos, evitando ataques típicos como HTML, script e SQL
injection. Estes ataques são feitos por usuários mal intencionados que digitam
códigos deste tipo para tentar expor alguma vulnerabilidade da aplicação. Tais
ataques podem ser facilmente bloqueados e envolvem medidas simples como
delimitar o tamanho dos campos texto para aceitarem um número limitado de
caracteres e a utilização de consultas SQL parametrizadas, ao invés de utilizar
concatenação de strings
Tais medidas de proteção são apenas os primeiros passos que devem ser
dados e são muito difundidos em sites e blogs sobre segurança. Neste artigo será
tratado outro aspecto envolvido na tarefa de tornar a aplicação mais segura e
confiável – a proteção dos dados através do uso do recurso de criptografia. Aqui
serão exibidos os principais conceitos para que um programador com pouca ou
nenhuma experiência sobre o assunto seja capaz de iniciar o conhecimento destes
recursos e possa saber quais os próximos passos a ser dado.
Criptografia
Esta palavra é composta por dois termos:
·
Cripto (kryptós em grego) que significa
escondido
·
Grafia (gráphein em grego) que significa escrita
escondida ou escrita codificada. Em informática refere-se a ocultar uma
informação alterando a sua grafia por outra escondida.
A criptografia não é um recurso novo e tem suas primeiras
aplicações na troca de informação entre membros do exército que a usavam para
enviar mensagens para soldados em campo, evitando desta forma que os dados
caíssem no conhecimento do inimigo.
Uma das maneiras mais primitivas para realização desta tarefa é
deslocar as letras em um número determinado de caracteres. Vamos dar um
exemplo, considere uma palavra qualquer: INTERNET.
Consideremos então deslocar cada letra em dez caracteres. Se a
letra Z for atingida, recomeçamos o alfabeto, logo, teremos como resultado da
criptografia: RWCNAWNC. Onde:
I - R
N - W
T - C
E - N
R - A
N - W
E - N
T - C
Logicamente, este tipo de criptografia é muito rudimentar e
fácil de ser quebrado, e por isso com o tempo o mesmo foi sendo aperfeiçoado.
Considere neste exemplo, um algoritmo que apelidaremos de 10 x 7, onde para cada
caractere em uma posição par usaremos um deslocamento de dez caracteres e para
caracteres em posição ímpar um deslocamento de sete caracteres:
I - O
N - W
T - Z
E - N
R - X
N - W
E - K
T - C
Se você prestou atenção nestes exemplos e está acompanhando o
raciocínio deve ter percebido que este tipo de tarefa possui duas
características importantes. Primeiro: quanto mais complicada a regra de
criptografia, mais tempo se levará para gerar o resultado codificado ou para
retornar ao seu significado original. Segundo: este tipo de tarefa “pede” para
ser feito por computador já que envolve cálculos matemáticos, como nestes dois
exemplos, mesmo que bem rudimentares, precisamos realizar contas para se chegar
ao valor criptografado.
Outro
aspecto importante que pode ser percebido neste exemplo é que havia uma regra
para gerar o código e consequentemente conhecer o seu significado original. No
primeiro exemplo a regra era deslocar os caracteres dez posições. Assim, para
conhecer o texto original, seria necessário retornar dez caracteres.
A regra pode ser
comparada com um algoritmo de programação onde estão especificados os passos
que precisam ser seguidos para gerar o texto codificado e decodificado. Logo,
para criptografar textos em programação o primeiro aspecto a ser considerado é
qual o algoritmo será usado. Existem vários algoritmos, cada um com um grau de
complexidade maior ou menor.
No
exemplo outro ponto que podemos considerar é que usamos um conjunto de
caracteres – no caso o alfabeto – que nos gerou o texto codificado. Este
conjunto de caracteres que foi usado para gerar o código pode ser chamado de
chave. Simplificando, uma chave é um conjunto de caracteres que é usado para
ajudar a compor o texto criptografado. Vamos mudar o algoritmo de criptografia:
vamos atribuir valores numéricos para cada caractere correspondente a sua
posição na palavra e outra coluna correspondente a posição da letra no
alfabeto, assim, a palavra original fica da seguinte forma:
I - 0 - 08
N - 1 - 13
T - 2 - 19
E - 3 - 04
R - 4 - 17
N - 5 - 13
E - 6 - 04
T - 7 - 19
Vamos determinar que iremos escrever a palavra usando dois bytes
(dois caracteres) representando a sua posição na palavra, desta forma teríamos:
08 13 19 04 17 13 04 19.
Oferta válida para todos os planos durante o mês de dezembro
+3 MESES
Grátis
Veja os resultado dos nossos alunos
Conquistas reais de quem está aplicando o método
<Perguntas frequentes>
Carreira
Por onde devo iniciar os estudos?
Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.
Em quanto tempo vou me tornar um programador?
O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.
Eu preciso de um diploma de faculdade para começar a atuar como programador?
Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.
Por que a programação se tornou a profissão mais promissora da atualidade?
A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.
Metodologia
Quais são os principais diferenciais da DevMedia?
Didática e Metodologia
Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios
Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno
Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação
A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.
O que eu irei aprender estudando pela DevMedia?
Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.
Quais as vantagens de aprender programação através da linguagem JavaScript?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens
A plataforma oferece certificados?
Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.
A plataforma tem suporte ao aluno, como funciona?
Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.
A DevMedia me forma como programador Full Stack?
Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!
Tem horário para as aulas?
Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.
Por que a DevMedia não usa videoaulas em sua didática?
Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.
Preciso de um computador específico para estudar na DevMedia?
Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.
Eu consigo estudar pelo celular?
Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.
A DevMedia tem aplicativo?
Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.
Preciso estar na faculdade para acompanhar os estudos na DevMedia?
Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.
Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?
Oferecemos o plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX
Adquirindo o plano, terei acesso a todo o conteúdo?
Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.
A plataforma tem planos vitalícios?
Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.
A DevMedia tem fidelidade?
Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.
Como funciona o cancelamento?
Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.
Cadastro
Como excluir meus dados da plataforma?
Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.
Compartilhe esse conteúdo com um amigo!
Faça login para ganhar recompensas.
Ou
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.