Pues eso estoy realizando un par de funciones en C# y al cifrar va todo de cine, el problema es que al descifrar me da un error que dice "Datos incorrectos". En esta linea= datades=sec.Decrypt(data, false);
el codigo del programa es:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
namespace encriptarstring
{
class Program
{
static string Cifrar(string texto)
{
byte[] dato;
byte[] dato_cifrado;
RSACryptoServiceProvider sec
= new RSACryptoServiceProvider
(); dato=UTF8Encoding.UTF8.GetBytes(texto);
dato_cifrado=sec.Encrypt(dato,false);
return Convert.ToBase64String(dato_cifrado, 0, dato_cifrado.Length);
}
static string DesCifrar(string textocifrado)
{
RSACryptoServiceProvider sec
= new RSACryptoServiceProvider
(); byte[] data, datades;
data = Convert.FromBase64String(textocifrado);
datades=sec.Decrypt(data, false); //<------AQUI DA EL ERROR
return UTF8Encoding.UTF8.GetString(datades);
}
static void Main(string[] args)
{
string texto = "Texto que quiero cifrar";
string Texto_Codificado;
Texto_Codificado = Cifrar(texto);
Console.WriteLine("Texto tal cual: {0}", texto);
Console.WriteLine("Texto cifrado: {0}",Texto_Codificado);
Console.WriteLine("Texto descifrado: {0}", DesCifrar(Texto_Codificado));
Console.ReadKey();
}
}
}
A ver si hay suerte y alguno sabeis que es lo hago mal...
Un saludo.