获取加密的app.config的公钥和私钥

时间:2014-11-10 08:34:28

标签: c# encryption web-config rsa rsacryptoserviceprovider

我编写了一个程序来加密和解密app.config文件中的appdata。该程序工作正常,所以我可以像这样加密app.config

<configProtectedData>
        <providers>
          <add keyContainerName="MyConfigurationKey"
          description="Uses RsaCryptoServiceProvider to encrypt and decrypt"
          name="MyProtectedConfigurationprovider"
          type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </providers>
      </configProtectedData>
      <appSettings configProtectionProvider="MyRSAProtectedConfigurationprovider">
        <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
          xmlns="http://www.w3.org/2001/04/xmlenc#">
          <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
          <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
            <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
              <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
              <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                <KeyName>Rsa Key</KeyName>
              </KeyInfo>
              <CipherData>
                <CipherValue> Some long text </CipherValue>
              </CipherData>
            </EncryptedKey>
          </KeyInfo>
          <CipherData>
            <CipherValue> very long text</CipherValue>
          </CipherData>
        </EncryptedData>
      </appSettings>

之后我导出了key.Result,这是:

<RSAKeyValue>
    <Modulus>Some text</Modulus>
    <Exponent>AQAB</Exponent>
    <P>Some text</P>
    <Q>Some text</Q>
<DP>Some text</DP>
<DQ>Some text</DQ>
<InverseQ>Some text</InverseQ>
<D>Some text</D>
</RSAKeyValue>

现在,我需要在加密中找到私钥和公钥。我搜索了几个地方,但我找不到合适的文件。请帮帮我。

1 个答案:

答案 0 :(得分:1)

我不确定您希望密钥的格式是什么,但key.Result包含您要查找的所有信息。元组模数和指数是公共RSA密钥,元组模数和D是私钥。从我在Exponent数据字段中可以看到,数字是base64编码的:AQAB是'\ x01 \ x00 \ x01'的base64编码,它是常用公共指数65537的编码。我不知道是否不过,这只是小端或大端。