hashing

Description

70-483 C# Flashcards on hashing, created by Thiago Russo on 23/05/2017.
Thiago Russo
Flashcards by Thiago Russo, updated more than 1 year ago
Thiago Russo
Created by Thiago Russo over 7 years ago
0
0

Resource summary

Question Answer
Exemplo do problema que hashing resolve
Exemplo, resolvendo o problema acima com técnica de hashing
Técnica de buckets (baldes) Se vc olhar para o método Contains, vc pode ver q ele usa o método GetHashCode de cada item. Este método é definido no objeto de classe base. Em cada tipo, vc pode substituir esse método e fornecer uma implementação específica para o seu tipo. Este método tem como saída um código inteiro que descreve o objeto particular. A título de orientação geral, a distribuição de códigos de hash deve ser tão aleatória quanto possível. É por isso que a implementação Set usa o método GetHashCode em cada objeto para calcular no bucket que está. Agora seus itens são distribuídos mais de cem buckets (baldes) em vez de um único balde. Quando você ver se um item existe, você primeiro calcula o código hash, vá para o balde correspondente, e procure o item. Esta técnica é usada pelas classes Hashtable e Dictionary do .NET Framework.
Princípios importantes sobre hashing Itens iguais devem ter códigos de hash iguais: Isso significa q vc pode verificar os hashs p/ ver se 2 itens são iguais. Isso tb significa q sua implementação do GetHashCode deve retornar o mesmo valor. Ele n deve depender de mudança de valores, como a data ou a hora atual.
Como hash ajuda na segurança? Se vc fizer o hash d um parágrafo de texto e mudar apenas uma letra, o código hash vai mudar, então hash é usado para verificar a integridade de uma mensagem. Ex: Alice e Bob querem enviar uma mensagem um para o outro. Alice cria um hash da mensagem e envia tanto o hash e a mensagem a Bob. Bob cria um hash da mensagem que recebeu de Alice e compara os dois códigos de hash com o outro. Se forem iguais, Bob sabe que ele recebeu a mensagem correta. Claro, sem ala criptografia adicional, um terceiro pode ainda mexer com a mensagem, alterando tanto a mensagem e o código hash. Combinado com as tecnologias de criptografia que o .NET oferece, hashing é uma técnica importante para validar a autenticidade de uma mensagem.
Exemplo usando o algorigmo SHA256Managed
Show full summary Hide full summary

Similar

Porova teórica C# mod l
Cursos Professor Jonatã
Linguagem C#
Alex Araujo Furado
Prova teorica C# mo ll
Cursos Professor Jonatã
Entity framework - code first
José Fernandes
Flashcard Módulo 1 - XAMARIN LATINO AMERICA
Marcone Barbosa
Entity framework
José Fernandes
C# and ASP.NET
Kalebi Fiorentini
Linguagens de programação
Rodrigo Barbosa7452
Dates and times .NET
Felipe Couto Viola
Conceitos do ASP.NET CORE (Incompleto)
José Fernandes Rezende Neto
Fluxo Game UC 8
Lucas Coluzzo