public void CompareTextHashesTest() { TextHash hash1 = pHashNet.HashText(CommonTest.file3); TextHash hash2 = pHashNet.HashText(CommonTest.file4); NativeStructures.TxtMatch[] actual; actual = pHashNet.CompareTextHashes(hash1, hash2); Assert.IsNotNull(actual); Assert.IsTrue(actual.Length > 1); }
//Método de evento para o clique no botão "Limpar" private void Clear_Click(object sender, EventArgs e) { //Limpa todas as caixas de texto CipherText.Clear(); plain_text.Clear(); TextHash.Clear(); //Foca o mouse na primeira caixa plain_text.Focus(); this.Encrypt.Enabled = true; }
//Método de evento para o clique no botão "Criptografar" private void Encrypt_Click(object sender, EventArgs e) { //Intância para escrever em um arquivo StreamWriter w; //Recebe o que foi digitado na caixa de texto string text = plain_text.Text; control = false; //Limpa as caixas CipherText.Clear(); TextHash.Clear(); this.Encrypt.Enabled = false; //Verifica se a caixa de texto foi preenchida e se está preenhcida só com caracteres de espaço if (!String.IsNullOrEmpty(text) && !String.IsNullOrWhiteSpace(text)) { //Inicia uma instância do AES using (Aes AES256 = Aes.Create()) { //Abre ou cria um arquivo com o nome e extensão passados using (w = File.AppendText("Crypto.txt")) { //Tamanho da chave criptográfica em bits AES256.KeySize = 256; //Envia chave e IV para as variaveis globais key = AES256.Key; iv = AES256.IV; //Envia o texto cifrado para o array de bytes global cipher = AES.Encrypt(text, key, iv); if (cipher == null) { this.Encrypt.Enabled = true; } //Percorre todo o texto cifrado //Envia cada caractere cifrado para a caixa de texto em Hexadecimal for (int i = 0; i < cipher.Length; i++) { CipherText.Text += cipher[i].ToString("X2") + " "; } //Desativa o botão "Descriptografar" this.Decrypt.Enabled = true; //Realiza o HASH e o envia para a caixa de texto do HASH em maiúsculo TextHash.Text = AES.HashSHA256(plain_text.Text).ToUpper(); //Escreve o texto cifrado e o Hash no arquivo w.WriteLine("Texto cifrado: " + CipherText.Text); w.WriteLine(""); w.WriteLine("Hash do texto claro: " + TextHash.Text); w.WriteLine("==================================================================================================\n"); //Fecha o arquivo w.Close(); } AES256.Dispose(); } } else { //Em caso de dados incorretos, apresenta uma mensagem, limpa as caixas //e coloca o mouse na primeira caixa de texto MessageBox.Show("Digite algo para criptografar!", "Caixa de texto vazia!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); CipherText.Clear(); plain_text.Clear(); TextHash.Clear(); plain_text.Focus(); this.Encrypt.Enabled = true; } }