Grazie per la risposta, albgen,
questo articolo l'ho letto, però sono rimasto perplesso in questo punto
codice:
public static void GetKeys(ref string PublicKey, ref string PrivateKey)
{
RSACryptoServiceProvider RSAProvider = new RSACryptoServiceProvider(2048);
PrivateKey = RSAProvider.ToXmlString(true);
PublicKey = RSAProvider.ToXmlString(false);
}
public static string Encode(string inputString, int dwKeySize,
string xmlString)
{
RSACryptoServiceProvider rsaCryptoServiceProvider =
new RSACryptoServiceProvider(dwKeySize);
rsaCryptoServiceProvider.FromXmlString(xmlString);
int keySize = dwKeySize / 8;
byte[] bytes = Encoding.Unicode.GetBytes(inputString);
byte[] EncryptMessage = rsaCryptoServiceProvider.Encrypt(bytes, true);
return Convert.ToBase64String(EncryptMessage);
}
public static string Decode(string inputString, int dwKeySize,
string xmlString)
{
RSACryptoServiceProvider rsaCryptoServiceProvider
= new RSACryptoServiceProvider(dwKeySize);
rsaCryptoServiceProvider.FromXmlString(xmlString);
byte[] CryptedMessage = Convert.FromBase64String(inputString);
byte[] DecryptedMessage = rsaCryptoServiceProvider.Decrypt(CryptedMessage, true);
return Encoding.Unicode.GetString(DecryptedMessage);
}
il metodo getkeys mi permette di ricevere le chiavi ma per criptare ho bisogno di quella pubblica mentre devo distribuire quella privata che... come stringa, contiene anche quella pubblica! Quindi l'utente può crearsi il suo file. Ho provato a sostituirla o ad elminarla ma il metodo di decodifica va in errore.