J'ai cette fonction que j'utilise pour déchiffrer des valeurs qui fonctionnent bien sur ma machine dev. Mais lorsqu'il est exécuté en production sur un autre serveur - donne ce message d'erreur exact:C# RSA Decryption issue
Le système ne peut pas trouver le fichier spécifié.
Voici la fonction:
public static string Decrypt(string stringToDecrypt, string key)
{
string result = null;
if (string.IsNullOrEmpty(stringToDecrypt))
{
throw new ArgumentException("An empty string value cannot be encrypted.");
}
if (string.IsNullOrEmpty(key))
{
throw new ArgumentException("Cannot decrypt using an empty key. Please supply a decryption key.");
}
try
{
System.Security.Cryptography.CspParameters cspp = new System.Security.Cryptography.CspParameters();
cspp.KeyContainerName = key;
System.Security.Cryptography.RSACryptoServiceProvider rsa = new System.Security.Cryptography.RSACryptoServiceProvider(cspp);
rsa.PersistKeyInCsp = true;
string[] decryptArray = stringToDecrypt.Split(new string[] { "-" }, StringSplitOptions.None);
byte[] decryptByteArray = Array.ConvertAll<string, byte>(decryptArray, (s => Convert.ToByte(byte.Parse(s, System.Globalization.NumberStyles.HexNumber))));
byte[] bytes = rsa.Decrypt(decryptByteArray, true);
result = System.Text.UTF8Encoding.UTF8.GetString(bytes);
}
finally
{
// no need for further processing
}
return result;
}
Mise à jour
Les gars, je l'origine allé cette route parce que, après des heures et des heures de recherche je suis arrivé une réponse sur StackOverflow, que cette méthode de cryptage/le décryptage fonctionne uniquement sur des chaînes et pas besoin d'importer/exporter des clés.
Alors ... Maintenant, il me manque un fichier clé? Comment est-ce possible que je n'ai même pas créé un fichier clé.
Quel est le but de la clause "finally" vide? –
Avez-vous installé la clé dans le même conteneur de clés sur la nouvelle machine? Les erreurs de chiffrement dans .NET peuvent être quelque peu trompeuses, mais il semble qu'il ne trouve pas le conteneur de clé que vous avez spécifié. –
@Rob, puisque je n'ai pas généré ce fichier clé, où puis-je le trouver? –