J'ai une application propriétaire qui utilise une extension pour gérer la cryptographie. Pour crypter une chaîne, je lui donne les paramètres Exponent, Modulus, Base et string. Il renvoie la chaîne chiffrée.Cryptage RSA en C# en utilisant Exponent, Modulus et Base en tant que paramètres
Je dois être capable de répliquer cette fonctionnalité dans une application C# qui parle à l'application propriétaire. Je ne sais pas par où commencer - et j'apprécierais toute aide que vous pourriez donner.
C'est ce que j'ai en ce moment;
public class Cryptography
{
public static RSACryptoServiceProvider rsa;
public static void AssignParameter()
{
const int PROVIDER_RSA_FULL = 1;
const string CONTAINER_NAME = "SpiderContainer";
CspParameters cspParams;
cspParams = new CspParameters(PROVIDER_RSA_FULL);
cspParams.KeyContainerName = CONTAINER_NAME;
//cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
cspParams.ProviderName = "Microsoft Strong Cryptographic Provider";
rsa = new RSACryptoServiceProvider(cspParams);
}
public static string Sencrypt(string input)
{
RSAParameters parameters = new RSAParameters();
parameters.Modulus = System.Text.Encoding.Unicode.GetBytes("nononomonomnomfoononmo");
parameters.Exponent = System.Text.Encoding.Unicode.GetBytes("b");
rsa.ImportParameters(parameters);
byte[] plainbytes = System.Text.Encoding.UTF8.GetBytes(input);
byte[] cipherbytes = rsa.Encrypt(plainbytes, false);
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
//return enc.GetString(cipherbytes);
return Convert.ToBase64String(cipherbytes);
}
}
Quand je crypter des données à l'aide de l'application propriétaire, puis essayez d'utiliser le code ci-dessus - la résultante des données chiffrées est différent.
Je ne sais pas comment procéder.
modifier; Il renvoie une chaîne différente chaque fois qu'il est exécuté. En utilisant la même chaîne d'entrée.
Vous devez afficher le code de l'extension que vous essayez de faire correspondre. Le chiffrement qui utilise "Exponent, Modulus, Base et string" comme paramètres laisse un nombre infini de possibilités. Il serait inutile pour nous d'essayer de deviner. Votre code C# pour Modulus et Exponent est quelque peu difficile à croire. Où avez-vous eu ces ficelles? –