Erro ao descriptografar senha
07/05/2013
0
Critografei uma senha de teste. No momento em que eu fui descriptografar para logar no sistema, deu esse erro:
Comprimento inválido para uma matriz de caracteres Base-64.
Usei um código de Cripto e Descripto que eu peguei na web. Abaixo os código. A senha gravada é 123 e o hash guardado no base é esse: sPF/TLh+KuE=
public string Codificar(string entrada)
{
TripleDESCryptoServiceProvider tripledescryptoserviceprovider = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider md5cryptoserviceprovider = new MD5CryptoServiceProvider();
try
{
if (entrada.Trim() != "")
{
string myKey = "1111111111111111"; //Aqui vc inclui uma chave qualquer para servir de base para cifrar, que deve ser a mesma no método Decodificar
tripledescryptoserviceprovider.Key = md5cryptoserviceprovider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(myKey));
tripledescryptoserviceprovider.Mode = CipherMode.ECB;
ICryptoTransform desdencrypt = tripledescryptoserviceprovider.CreateEncryptor();
ASCIIEncoding MyASCIIEncoding = new ASCIIEncoding();
byte[] buff = Encoding.ASCII.GetBytes(entrada);
return Convert.ToBase64String(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
}
else
{
return "";
}
}
catch (Exception exception)
{
throw exception;
}
finally
{
tripledescryptoserviceprovider = null;
md5cryptoserviceprovider = null;
}
}
public string Decodificar(string entrada)
{
TripleDESCryptoServiceProvider tripledescryptoserviceprovider = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider md5cryptoserviceprovider = new MD5CryptoServiceProvider();
try
{
if (entrada.Trim() != "")
{
string myKey = "1111111111111111"; //Aqui vc inclui uma chave qualquer para servir de base para cifrar, que deve ser a mesma no método Codificar
tripledescryptoserviceprovider.Key = md5cryptoserviceprovider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(myKey));
tripledescryptoserviceprovider.Mode = CipherMode.ECB;
ICryptoTransform desdencrypt = tripledescryptoserviceprovider.CreateDecryptor();
byte[] buff = Convert.FromBase64String(entrada);
return ASCIIEncoding.ASCII.GetString(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
}
else
{
return "";
}
}
catch (Exception exception)
{
throw exception;
}
finally
{
tripledescryptoserviceprovider = null;
md5cryptoserviceprovider = null;
}
}
Comprimento inválido para uma matriz de caracteres Base-64.
Usei um código de Cripto e Descripto que eu peguei na web. Abaixo os código. A senha gravada é 123 e o hash guardado no base é esse: sPF/TLh+KuE=
public string Codificar(string entrada)
{
TripleDESCryptoServiceProvider tripledescryptoserviceprovider = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider md5cryptoserviceprovider = new MD5CryptoServiceProvider();
try
{
if (entrada.Trim() != "")
{
string myKey = "1111111111111111"; //Aqui vc inclui uma chave qualquer para servir de base para cifrar, que deve ser a mesma no método Decodificar
tripledescryptoserviceprovider.Key = md5cryptoserviceprovider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(myKey));
tripledescryptoserviceprovider.Mode = CipherMode.ECB;
ICryptoTransform desdencrypt = tripledescryptoserviceprovider.CreateEncryptor();
ASCIIEncoding MyASCIIEncoding = new ASCIIEncoding();
byte[] buff = Encoding.ASCII.GetBytes(entrada);
return Convert.ToBase64String(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
}
else
{
return "";
}
}
catch (Exception exception)
{
throw exception;
}
finally
{
tripledescryptoserviceprovider = null;
md5cryptoserviceprovider = null;
}
}
public string Decodificar(string entrada)
{
TripleDESCryptoServiceProvider tripledescryptoserviceprovider = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider md5cryptoserviceprovider = new MD5CryptoServiceProvider();
try
{
if (entrada.Trim() != "")
{
string myKey = "1111111111111111"; //Aqui vc inclui uma chave qualquer para servir de base para cifrar, que deve ser a mesma no método Codificar
tripledescryptoserviceprovider.Key = md5cryptoserviceprovider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(myKey));
tripledescryptoserviceprovider.Mode = CipherMode.ECB;
ICryptoTransform desdencrypt = tripledescryptoserviceprovider.CreateDecryptor();
byte[] buff = Convert.FromBase64String(entrada);
return ASCIIEncoding.ASCII.GetString(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
}
else
{
return "";
}
}
catch (Exception exception)
{
throw exception;
}
finally
{
tripledescryptoserviceprovider = null;
md5cryptoserviceprovider = null;
}
}
Pjava
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)