Asp.net core 如何在.NETCore中使用RSA
我尝试使用RSA对文件进行加密,但它没有Asp.net core 如何在.NETCore中使用RSA,asp.net-core,asp.net-core-mvc,.net-core,Asp.net Core,Asp.net Core Mvc,.net Core,我尝试使用RSA对文件进行加密,但它没有toXmlString()和fromXmlString方法。如何在.net core中使用RSA类? 我想用私钥加密,用公钥解密,这样其他人只能读取此文件,但无法生成此文件,可能吗?目前使用纯.net core时,您得到的信息较少: 最后,这意味着您现在可以在.NETCore上构建,并期望 更多功能稍后点亮,因此随着时间的推移,事情会变得越来越容易 继续。你是否想成为一个早期采用者用更少的 特色框架现在,,或在以后添加更多功能时加入 添加了,第三方生态系统
toXmlString()
和fromXmlString
方法。如何在.net core中使用RSA类?
我想用私钥加密,用公钥解密,这样其他人只能读取此文件,但无法生成此文件,可能吗?目前使用纯.net core时,您得到的信息较少: 最后,这意味着您现在可以在.NETCore上构建,并期望 更多功能稍后点亮,因此随着时间的推移,事情会变得越来越容易 继续。你是否想成为一个早期采用者用更少的 特色框架现在,,或在以后添加更多功能时加入 添加了,第三方生态系统已经迎头赶上,将成为 (艰难的)决定,我们都必须由你自己做出 如果您以.NETCore中的完整.NETFramework为目标,那么它们将可用
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"net461": {}
}
}
它们将不适用于以下情况,例如:
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
虽然
ToXmlString
和FromXmlString
方法不可用,ImportParameters(rsapameters)
和ExportParameters(bool)
不可用
如果您有需要继续读取的现有XML格式的值,则键的XML格式不是很有趣:
仅限公众:
<RSAKeyValue>
<Modulus>[base64-encoded value]</Modulus>
<Exponent>[base64-encoded value]</Exponent>
</RSAKeyValue>
[base64编码值]
[base64编码值]
公共+私人:
<RSAKeyValue>
<Modulus>[base64-encoded value]</Modulus>
<Exponent>[base64-encoded value]</Exponent>
<P>[base64-encoded value]</P>
<Q>[base64-encoded value]</Q>
<DP>[base64-encoded value]</DP>
<DQ>[base64-encoded value]</DQ>
<InverseQ>[base64-encoded value]</InverseQ>
</RSAKeyValue>
[base64编码值]
[base64编码值]
[base64编码值]
[base64编码值]
[base64编码值]
[base64编码值]
[base64编码值]
(其中,每个命名的XML元素映射到rsapameters
struct上同名的字段)
否则,您可以/应该使用最适合您和您的应用程序的任何序列化机制。您不能使用其他可用的方法吗?我在网上找到的所有示例都使用
fromXmlString
方法。你能告诉我另一种方法吗?你可以使用这样一个扩展:我用exportParameters
和ImportParameters
创建我自己的ToXMlString
和exportParameters
,它工作正常,但不能使用私钥加密,也不能使用公钥解密,有什么建议吗?@John私钥可以加密,因为它有公钥,但是公钥不能解密。使用私钥来证明真实性称为签名,因此您可能需要SignData和VerifyData,而不是加密和解密。您可能意识到我想要编写一个许可证文件,该许可证是一个加密的xml文件(二进制格式),包含一些必要的信息。我的应用程序需要这些信息来启动和执行某些操作。所以我真的需要加密和解密,目前我使用AES加密该文件,但如果有人反编译我的应用程序,他们将获得AES密钥,这样他们就可以轻松生成他们想要的任何许可证。这偏离了原来的问题,也许你需要一个新的许可证。许可证文件通常不加密,而是经过签名。{License:{User:John,Serial:123456789},Signature:(binary/base64 blob)}。然后构建二进制形式的许可证(例如UTF-8 User concat Serial)并调用rsaPublic.VerifyData(数据、许可证.Signature,…)。但是.NET(核心或框架)不允许私有加密+公共解密,RSA签名除外。