1. [3 valor(es) ∑ = 3] Escreva o HTML que conduza a uma página com a seguinte apresentação: A sua frase: Resultado da encriptação: Decriptando: Sabendo que a sua organização deve ser a seguinte: • Uma form que contém, para além dos parágrafos visíveis: o Uma caixa de texto, com id “tFrase”; o Uma área de texto (elemento textarea) com id “tEnc”; o Uma textarea com id “tDec”. • A cada keypress em tFrase, deve ser chamada uma função Javascript “feedback”, sem argumentos. • E, por fim, já no exterior da form, um parágrafo, inicialmente vazio de conteúdo, com id “feedback”. 2. A ideia é combinar o HTML da questão 1 com o Javascript das questões da próxima página, de forma a conseguir uma aplicação que permita testar umas técnicas de criptação de conteúdos. Por exemplo, quando alguém escrever “Artur” em tFrase, deverá aparecer “Fsy}v” em tEnc, porque esse é o resultado da sua criptação, pelas técnicas que serão descritas nos próximos exercícios. Para decriptar “Fsy}v” em “Artur” será necessária a chave “5 1 5 8 4”. A imagem abaixo ilustra uma utilização da form. A sua frase: Resultado da encriptação: Decriptando: somaDaFrase= 526 numeroDaFrase= 4 chaveDaFrase= 5 1 5 8 4 2.1 [3 valor(es) ∑ = 6] Escreve, em Javascript, a função “somaDaFrase”, que deve receber uma qualquer frase e devolver a soma dos códigos ASCII das letras que a compões. Por exemplo: Var soma=somaDaFrase(“Artur”); //soma=526, porque A=65 + r=114 + t=116 + u=117 + r=114 = 526 2.2 [3 valor(es) ∑ = 9] Escreva, em Javascript, a função “numeroDaFrase”, que deve receber uma qualquer frase e devolver o número que é somado à sua somaDaFrase, torna o resultado múltiplo de 10. Por exemplo: Var num=numerodaFrase(“A”); //num=5, porque 5 é o número que somado a somaDaFrase(“A”)=65, permite um resultado (70) múltiplo de 10. 2.3 [3 valor(es) ∑ = 12] Escreva, em Javascript, a função “chaveDaFrase”, que deve receber uma qualquer frase e devolver a frase composta pelos sucessivos numeroDaFrase que lhe foram correspondendo. Por exemplo: Var numeros=chaveDaFrase(“AB”); //numeros=”5 9”, porque 5 é o numeroDaFrase(“A”) e 9 é numeroDaFrase(“AB”); 2.4 [4 valor(es) ∑ = 16] Escreva, em Javascript, a função “cripta”, que poderá receber uma frase e uma chave. Quando for recebida uma chave, a função deve decriptar a frase, de acordo com a chave, retornando a frase resultado. Quando não for recebida uma chave, a função deve encriptar a frase, usando como chave a chaveDaFrase, retornando a frase resultado. O significado destas encriptação e decriptação explica-se de seguida: Por exemplo, para a frase “AB”, que tem chaveDaFrase=”5 9”, a encriptação é “FK”, porque F é a letra cujo código ASCII (70) é + 5 do que o código da letra “A” (65); K é a letra cujo código ASCII (75) é + 9 do que o código da letra “B” (66). A decriptação faz-se por subtracção. Por exemplo: var resultado=cripta(“FK”,”5 9”); //resultado=”AB”, porque A é a letra cujo código ASCII (65) é – 5 do que o código da letra “F” (70); B é a letra cujo código ASCII (66) é – 9 do que o código da letra “K” (75). 3. [4 valor(es) ∑ = 20] Admita que está disponível uma form com caixas de texto com IDs “tFrase” e “tChave”, destinadas a receberem uma frase encriptada e uma chave de decriptação, com a lógica explicada nas questões anteriores. Escreva o CGI C# capaz de receber, por GET e url-encoded, ambas as frases e de responder com o resultado da decriptação.