c#-C#中怎么使用.cer证书中的公钥进行AES加密?

问题描述

C#中怎么使用.cer证书中的公钥进行AES加密?

最近要对接中行的支付接口, 那边给出的接口是用pfx证书中的私钥进行签名以后,再使用cer证书中的公钥加密;
这个加密的秘钥要怎么读取出来?
我现在这样写:
X509Certificate2 pubcrt = new X509Certificate2(cer);
RSACryptoServiceProvider pubkey = (RSACryptoServiceProvider)pubcrt.PublicKey.Key;
Rijndael rd = Rijndael.Create();
rd.Key = Encoding.UTF8.GetBytes(pubkey.ToXmlString(false));

报出的错误是:指定键的大小对于此算法无效。
求救啊 急急急!!!!

解决方案

http://blog.csdn.net/zj510/article/details/39964533

解决方案二:

这个是RSA加密吧? 我需要使用证书里面的公钥 ,进行**AES**加密

解决方案三:

这个是反编译出来的java示例

 public Document encrypt(Document node, boolean keyInfoFlag, byte[] key)
    throws Exception
  {
    if (this.mode != 1)
      throw new IllegalStateException("call a XMLEDTool instance not for encrypt.");
    Key skey;
    if (key != null) {
      skey = new SecretKeySpec(key, this.algorithm);    //这里的 this.algorithm 是AES
    }
    else
    {
      Key skey;
      if (keyInfoFlag) {
        KeyGenerator keyGenerator = KeyGenerator.getInstance(this.algorithm);
        skey = keyGenerator.generateKey();
      }
      else {
        throw new IllegalArgumentException("Key is null.");
      }
    }
    Key skey;
    XMLCipher xmlCipher = XMLCipher.getInstance(this.xmlAlgorithm);
    xmlCipher.init(1, skey);

    if (keyInfoFlag) {
      XMLCipher keyCipher = XMLCipher.getInstance(this.xmlWrapAlgorithm);
      keyCipher.init(3, this.wrapKey);
      EncryptedKey encryptedKey = keyCipher.encryptKey(node, skey);

      EncryptedData encryptedData = xmlCipher.getEncryptedData();
      KeyInfo keyInfo = new KeyInfo(node);
      keyInfo.add(encryptedKey);
      encryptedData.setKeyInfo(keyInfo);
    }

    return xmlCipher.doFinal(node, node.getDocumentElement(), true);

  }

怎么把这个改写成C#???

时间: 2024-09-26 11:36:49

c#-C#中怎么使用.cer证书中的公钥进行AES加密?的相关文章

在ASP/ASP.NET 中处理客户端数字证书

asp.net|客户端    客户端数字证书与基本身份验证(Basic).域服务器的摘要式身份验证.集成 Windows 身份认证或自定义的 Form 认证等方式相比,虽然部署和管理方面稍微复杂一些,但安全性也更好一些,应用上也较为灵活.  在 ASP 和 ASP.NET 中处理和识别客户端数字证书是非常容易的,代码如下: ASP (VBscript)语法:     Dim subject   subject=Request.ServerVariables("CERT_SUBJECT"

在ASP及ASP.NET中处理客户端数字证书

客户端数字证书与基本身份验证(Basic).域服务器的摘要式身份验证.集成 Windows 身份认证或自定义的 Form 认证等方式相比,虽然部署和管理方面稍微复杂一些,但安全性也更好一些,应用上也较为灵活. 在 ASP 和 ASP.NET 中处理和识别客户端数字证书是非常容易的,代码如下: ASP (VBscript)语法: Dim subject   subject=Request.ServerVariables("CERT_SUBJECT") 或   subject=Reques

如何从客户端证书中获取私钥???? +急

问题描述 客户端证书(pfx格式)已经导入到CertificateStore的MyStore中,并且可以获取到,请问:如何从该证书中获取私钥!用WSE2.0,找到一点代码,说是用X509Certificate的Key.ToXmlString(true),系统可以获得,可是运行到这一句就会抛出异常:Exportofprivateparametersisnotsupported这是点解啊???大侠救命,困扰了N久了啊解决了问题倾囊相赠啊!!!!!!+急+急+急+急+急+急+急+急+急+急+急+急+急

C++如何访问IE证书中的密钥

问题描述 需要用C++编程使用证书中的私钥解密文件,怎么能吧密钥读出来呢? 解决方案 解决方案二:公钥加密,私钥解密!要获得证书的公钥.私钥必须1获得证书文件2知道证书的密码3创建X509Certificate2,必须提供2个参数:证书文件名.证书的密码4有了X509Certificate2对象就可以解密了,而且可以获得他们的公钥.私钥.解决方案三:关注..解决方案四:引用1楼Sysping1的回复: 公钥加密,私钥解密!要获得证书的公钥.私钥必须1获得证书文件2知道证书的密码3创建X509Ce

.net项目编译时,无法在证书存储区中找到清单签名证书

  编译.net项目时,出现无法找到清单签名证书的状况,用方法3解决了.用方法1和2只能顺利编译,但不能发布.   最直接有效的方法是1,2和1效果一样只不过是处理的步骤多几步: 1.工程->属性->签名->为ClickOnce清单签名   2.用记事本打开对应csproj文件.将 <SignManifests>true</SignManifests>改为 <SignManifests>false</SignManifests>.    

把btyte数组生成公钥并导入到证书中,导入证书报错

问题描述 把btyte数组生成公钥并导入到证书中,导入证书报错 byte[] key 是一个byte数组 InputStream in = new ByteArrayInputStream(key); CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); Certificate certificate = certificateFactory.generateCertificat

求助:如何用C语言编程获取证书中的RSA公钥?

问题描述 如何用C语言编程获取证书中的RSA公钥,然后用RSA公钥对会话密钥加密后进行传输呢?CertOpenStoreCertFindCertificateInStore这些函数是包含在哪个头文件中呢? 解决方案 解决方案二:Error1errorLNK2019:unresolvedexternalsymbol__imp__CertCloseStore@8referencedinfunction"struct_CERT_CONTEXTconst*__cdeclGetCertificateCon

已知公钥私钥,如何生成.cer证书

问题描述 各位好:当初用keytool生成一对私钥和公钥以及一个.cer证书.现在这个证书找不到了,而我在ios加密的时候需要这个.cer证书.求各位如何生成这个.cer证书 解决方案 解决方案二:貌似,证书跟他们没关系吧解决方案三:有关系啊,ios开发需要从证书中提取公钥,然后再进行加解密的啊当然我也不确定我这样理解对不对

客户端调用服务器端的excel模板,并向此excel中特定的单元格中写入数据,最后将这个excel文件保存在客户端机器上或打印,而服务器端excel模板不变

问题描述 bs模式,vs2008,sql2005工作中遇到一个难题,向大家请教:我自己先做好excel模板,比如说"检定证书模版.xlsx",主要是设置好表头.第一列.以及表的底部的各种格式,然后将此文件放到服务器网站的文件下的一个文件夹内.客户端通过浏览器进行操作,并将从数据库把数据调入上面的模板中.通过点击一个按钮,客户端就可以完成保存此excel文件并可以直接打印.这个过程中我会从sqlserver数据库中读取到符合要求的数据,并写入到此excel文件中的特定单元格里,单元格是固