Compañeros, les cuento estoy trabajando con dos funciones para encriptar y desencriptar datos (para los query string), como no eh trabajado antes tengo unos problemas, ojala alguien que tenga un poco mas de experiencia en esto me pueda ayudar.... Aqui estan las dos funciones Encriptar y Desencriptar
Código:
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.IO;
using System.Xml;
using System.Text;
using System.Security.Cryptography;
public class Tools
{
private static byte[] key = { };
private static byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
public static string KEY
{
get { return "MyKeyNetTests"; }
}
public static string Decrypt(string stringToDecrypt, string sEncryptionKey)
{
byte[] inputByteArray = new byte[(stringToDecrypt.Length + 1)];
try
{
key = System.Text.Encoding.UTF8.GetBytes(sEncryptionKey.Substring(0, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
inputByteArray = Convert.FromBase64String(stringToDecrypt);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
return encoding.GetString(ms.ToArray());
}
catch
{
return "0"; ;
}
}
public static string Encrypt(string stringToEncrypt, string SEncryptionKey)
{
try
{
key = System.Text.Encoding.UTF8.GetBytes(SEncryptionKey.Substring(0, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.UTF8.GetBytes(stringToEncrypt);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch
{
return "0";
}
}
}
Ahora mi problema esta que hay datos que tienen problemas al desencriptarse, hago una depuración y se cae en esta linea (funcion desencriptar)
Código:
inputByteArray = Convert.FromBase64String(stringToDecrypt);
Algunos de los datos que encripto y no logro desencriptar por que se cae son: 2, 4, 8, 20
Les agradecería mucho su ayuda