Como criar um gerador de machinekey
Boa Tarde pessoal!
Nesse artigo veremos como desenvolver uma ferramenta para geração de machinekey’s, com essa ferramenta podemos gerar chaves que, por exemplo, podem ser utilizadas pelo Membership para criptografia de senhas.
Vamos iniciar o desenvolvimento criando um novo projeto do tipo Windows Application, para isso acesse o menu File > New > Project, depois dentro da opção “Windows” selecione o item “Windows Forms Application” será criada um novo projeto como mostra na imagem abaixo.
Agora vamos adicionar alguns componentes que iremos utilizar, adicione um Button e altere o ID para btnGerarChave, um Textbox e altere o ID para txtChave e três RadioButtons com os respectivos ID’s rb128, rb256, rb512, podemos ver o resultado na imagem abaixo.
Após ter adicionado os componentes começaremos a codificar nosso gerador de “machineKey”, vá para o Code Behind (F7) nele vamos escrever o seguinte código;
Código 1
Código 2
Código 3
Após ter criado todos os métodos e códigos o resultado do será esse:
Abraços
T+
Nesse artigo veremos como desenvolver uma ferramenta para geração de machinekey’s, com essa ferramenta podemos gerar chaves que, por exemplo, podem ser utilizadas pelo Membership para criptografia de senhas.
Vamos iniciar o desenvolvimento criando um novo projeto do tipo Windows Application, para isso acesse o menu File > New > Project, depois dentro da opção “Windows” selecione o item “Windows Forms Application” será criada um novo projeto como mostra na imagem abaixo.
Agora vamos adicionar alguns componentes que iremos utilizar, adicione um Button e altere o ID para btnGerarChave, um Textbox e altere o ID para txtChave e três RadioButtons com os respectivos ID’s rb128, rb256, rb512, podemos ver o resultado na imagem abaixo.
Após ter adicionado os componentes começaremos a codificar nosso gerador de “machineKey”, vá para o Code Behind (F7) nele vamos escrever o seguinte código;
Código 1
//Contante com o template da chave machinekey
private const string constTag = "<machineKey validationKey=\"{0}\" decryptionKey=\"{1}\" validation=\"SHA1\" decryption=\"AES\" />";
Código 2
private void button1_Click(object sender, EventArgs e)
{
//Limpando o textbox
txtMachineKey.Clear();
//Inicializando o tamnho de bytes da nossa chave
int byteLen = 128;
if (rb256.Checked)
byteLen = 256;
if (rb512.Checked)
byteLen = 512;
//Altera os paramentros da constante string "constTag" com os valors do método "getRadomKey"
string tag = string.Format(constTag, getRadomKey(byteLen), getRadomKey(byteLen / 2));
//Popula o TextBox com a chave gerada
txtMachineKey.Text = tag;
}
Código 3
private string getRadomKey(int byteLength)
{
//Inicializa o arrey de bytes
byte[] buff = new byte[byteLength / 2];
//Intancia a classa para a criptografia
//Necessário utilzação da using System.Security.Cryptography;
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
//Preenche o arrey de bytes com a criptografia utilizada
rng.GetBytes(buff);
//Intancia uma StringBuilder
//(String de construção, é concelhável a utilização quando necessitamos contatenar uma grande contidade
// de strings
StringBuilder sb = new StringBuilder(byteLength);
//Converte o array par o formato de string
for (int i = 0; i < buff.Length; i++)
sb.Append(string.Format("{0:X2}", buff[i]));
//resutado final do processo de criação de uma chave de criptografia randômica
return sb.ToString();
}
Após ter criado todos os métodos e códigos o resultado do será esse:
<machineKey
validationKey="D92064F6030F99FB57211D2158069D85C3714CBF4D7C1E7DFF523AEB35417832FC5A4167AB52AC2AB2C944F34897627D476C6BF8E8AEC61BF53565ED5D122A1B"
decryptionKey="381B0613A7E3073A8B2103C5C3E31A6E5E5EFE5CFF56755CE61A311094A6A6DC"
validation="SHA1"
decryption="AES" />
Abraços
T+
Tag: Membership, Asp.net, machinekey, c#, csharptoolbox
Comentários
Postar um comentário