public string RSAverifica(string pseuUser, string datosYfirma, bool publicidad) { BD dbUtiles = new BD(Formulario); string clave = dbUtiles.recuperaSK(pseuUser); string datosDescifrados = Decrypt(datosYfirma, clave); string[] cortado = datosDescifrados.Split(';'); string datos = cortado[0] + ";" + cortado[1] + ";" + cortado[2] + ";" + cortado[3] + ";" + cortado[4] + ";" + cortado[5]; //+ ";" + cortado[6];+ ";" + cortado[7] fecha 7 no por que es cuando expira, esto no se firma byte[] decryptedData = utiles.StrToByteArray(datos); byte[] signedData = Convert.FromBase64String(cortado[cortado.Length-1]);//la firma esta en la posición 8 string usuario = "Autoridad"; if (!publicidad) usuario = pseuUser; string clavePublica = dbUtiles.recuperaPublicaModulo(usuario); string[] Cpublicamodulo = clavePublica.Split(','); RSAParameters Cpublica = new RSAParameters()//RECOGER CPUBLICA DE DB { Exponent = Convert.FromBase64String(Cpublicamodulo[1]), //"AQAB"), Modulus = Convert.FromBase64String(Cpublicamodulo[0]) //"98Ej5BZ/VMG4nxCzdMZoZ8V50//GvnEQc3CX4vyHzDjOfUGB21ZjVF12s+h3ZQmQX/Woq1zZM6sNsTLVG2SiQhzwWIEE7ioyr2vn1OjE17QOlmrVtl8lI4txnZQQh8jaq1mEi1lqI7JMvwBr+AmTWz+Vf5RraWv/a7qonMDovyM=") }; //encryptedData = Criptutiles.RSAEncrypt(dataToEncrypt, Cpublica, false); RSACryptoServiceProvider RSA3 = new RSACryptoServiceProvider(); RSA3.ImportParameters(Cpublica); if (RSA3.VerifyData(decryptedData, "SHA1", signedData))// (dataToEncrypt, "SHA1", signedData); return datosDescifrados; //Formulario.Invoke(Formulario.myDelegate, new Object[] { "Advertisement Data not Correct" }); else return ""; }