Je suis en train de mettre en œuvre cryptosystème hybride tel que mentionné dans https://en.wikipedia.org/wiki/Hybrid_cryptosystemImplémentation de système cryptographique hybride dans .net. Erreur clé spécifiée n'est pas une taille valide pour cet algorithme
Au moment où je l'ai mis en œuvre suivant algorithme
private void button1_Click(object sender, EventArgs e)
{
CspParameters cspParams = new CspParameters { ProviderType = 1 };
RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(1024, cspParams);
string publicKey = Convert.ToBase64String(rsaProvider.ExportCspBlob(false));
string privateKey = Convert.ToBase64String(rsaProvider.ExportCspBlob(true));
string symmericKey = "Kamran12";
txtEncryptedData.Text = EncryptData(txtInputData.Text, symmericKey);
string encryptedsymmetrickey = EncryptData(symmericKey, publicKey); //error line
//string decryptsymmetrickey = encryptedsymmetrickey + privateKey;
//string decrypteddata = encryptedData + decryptsymmetrickey;
}
public string EncryptData(string data, string key)
{
string encryptedData = null;
byte[] buffer = Encoding.UTF8.GetBytes(data);
DESCryptoServiceProvider desCryptSrvckey = new DESCryptoServiceProvider
{
Key = new UTF8Encoding().GetBytes(key)
};
desCryptSrvckey.IV = desCryptSrvckey.Key;
using (MemoryStream stmCipherText = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(stmCipherText, desCryptSrvckey.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(buffer, 0, buffer.Length);
cs.FlushFinalBlock();
encryptedData = Encoding.UTF8.GetString(stmCipherText.ToArray());
}
}
return encryptedData;
}
Mais obtenir l'erreur clé spécifiée est pas une taille valide pour cet algorithme. au moment du cryptage de la clé symétrique
Votre 'publicKey' est plus grand que les 64 bits autorisés qui sont attendus pour cette méthode de cryptage. C'est pourquoi vous obtenez l'exception. C'est 200 octets qui est 1600 bits. – BinaryFr3ak
C'est un peu vrai, mais le fait que la mauvaise combinaison algorithme/clé est utilisée pour "envelopper" la clé DES en utilisant RSA est l'erreur sous-jacente. –
Revoir la dernière version. Ceci est un site Q/A, pas un site de débogage. Ne mettez pas à jour votre code avec des solutions (partielles). –