用C#中的公钥加密XML:如何创建会话密钥

用C#中的公钥加密XML:如何创建会话密钥,c#,xml,public-key-encryption,C#,Xml,Public Key Encryption,关于本文件: 我想使用业务合作伙伴的公钥对XML进行加密,该公钥保存在文本文件中。因此,与此相反: sessionKey = new RijndaelManaged(); sessionKey.KeySize = 256; 然后这个: EncryptedXml eXml = new EncryptedXml(); byte[] encryptedElement = eXml.EncryptData(elementToEncrypt, sessionKey, false); 我需要使用合作伙

关于本文件:

我想使用业务合作伙伴的公钥对XML进行加密,该公钥保存在文本文件中。因此,与此相反:

sessionKey = new RijndaelManaged();
sessionKey.KeySize = 256;
然后这个:

EncryptedXml eXml = new EncryptedXml();
byte[] encryptedElement = eXml.EncryptData(elementToEncrypt, sessionKey, false);

我需要使用合作伙伴的X509证书创建一个会话密钥,并将该密钥作为第二个参数发送到EncryptData方法。从合作伙伴的证书生成会话密钥的步骤是什么?

将用户X509证书传递到加密方法中。如果你发布了你的全部代码,这会更容易看到…我还没有任何代码。EncryptData方法的第二个参数的数据类型不是“X509Certificate”,因此您的建议对我来说不清楚。那么请尝试使您的代码???只需使用X509Certificate作为IV的加密密钥。对于256字节的密钥,您需要一个32字符长的字符串。IV必须为128字节,带有16个字符长的字符串。如果X509Certificate始终少于16个字符,则将其用作IV,并添加额外字符,直到其合计为16个字符。如果高于该值,则执行相同操作,但将其用作键值。