加密X509Certificate公钥



all,我正在为一个项目启动IDP启动Web SSO,而服务提供商对RSA进行了对AES-128对称键(带PKCS1填充的ECB)和BASE64 ENCODE的要求。在将其添加到SAML 2.0响应的属性部分之前。我的理解是RSA加密是不对称的,我们必须加密的关键是服务提供者公共密钥。但是我们没有SP的公共证书,所以我决定加密RSA的X509Certicate的公钥

这是我拥有的代码,它在rsacryptoserviceprovider类上调用加密方法会引发不良长度的加密例外。有没有人知道问题?

using(var rsa = cert.PublicKey.Key as RSACryptoServiceProvider)
            {
                rsa.KeySize = 1024;                
                byte[] encryptedKey = rsa.Encrypt(cert.GetPublicKey(),false);                
                encodedPublicKey =  Convert.ToBase64String(encryptedKey);
            }

您可以使用RSA公钥加密的数据量必须(我不知道确切的方程式)小于公共密钥的长度。

如果加密AES-128,您将加密128位。

最新更新