C# 获取加密app.config的公钥和私钥
我已经编写了一个程序来加密和解密C# 获取加密app.config的公钥和私钥,c#,encryption,web-config,rsa,rsacryptoserviceprovider,C#,Encryption,Web Config,Rsa,Rsacryptoserviceprovider,我已经编写了一个程序来加密和解密app.config文件中的appdata。程序运行正常,因此我可以像这样加密app.config <configProtectedData> <providers> <add keyContainerName="MyConfigurationKey" description="Uses RsaCryptoServiceProvider to encrypt and decryp
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>
现在,我需要在加密中找到私钥和公钥。我找了好几个地方,但找不到有关它的适当文件。请在这方面帮助我。我不确定您希望密钥采用的格式,但
密钥。结果包含您要查找的所有信息。元组模和指数是RSA公钥,元组模和D是私钥。从指数数据字段中可以看到,数字是base64编码的:AQAB是“\x01\x00\x01”的base64编码,这是常用的公共指数65537的编码。不过,我不知道它是小endian还是大endian。你在搜索时发现了什么?为什么你发现的不适用于这里?您是否在MSDN中查找与加密相关的API?我使用以下问题的答案来完成此操作。我找到了如何导出,但是我找不到描述哪部分是私钥、哪部分是bublic密钥的文档。我在这里找到了答案。但我不确定它是否正确@parseids是否有可信的源代码描述this@Nayanna:任何关于RSA加密的教科书,例如。但对于实际用途,您始终需要将其转换为目标应用程序能够理解的格式。例如,x.509 PEM或DER格式与PGP密钥格式有很大不同。如果您能解释一下您打算用钥匙做什么,我们可能会提供更具体的帮助。非常感谢您的回答。我不熟悉加密技术。我需要在web场场景中加密app.config文件。我可以成功地做到这一点。但是我需要用我自己的密钥加密。所以我想导出密钥,编辑私钥和公钥,然后再次导入。这是一个好方法还是更好的方法。再次非常感谢。@Nayanna:您应该交换文件的全部内容,以加快解密速度。关于你的想法的安全影响,我真的说不出来,因为我不太清楚这种设置的威胁场景。也许您可以就这方面提出一个单独的问题,其中包含您想要保护哪些数据不受谁的影响,以及谁仍然需要访问这些数据。我相信服务器仍然需要读取配置才能启动应用程序?
<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>