如何在.net Core中使用RSA

时间:2016-07-10 04:25:53

标签: asp.net-core asp.net-core-mvc .net-core

我尝试使用.bash_profile加密文件,但它没有RSAtoXmlString()方法。如何在.net核心中使用fromXmlString类? 我希望使用私钥加密并使用公钥解密,因此其他人只能读取此文件但无法生成此文件,这可能吗?

2 个答案:

答案 0 :(得分:3)

虽然ToXmlStringFromXmlString方法不可用,但ImportParameters(RSAParameters)ExportParameters(bool)都是。

如果您需要继续阅读现有的XML格式值,那么键的XML格式并不是很有趣:

仅限公开:

<RSAKeyValue>
  <Modulus>[base64-encoded value]</Modulus>
  <Exponent>[base64-encoded value]</Exponent>
</RSAKeyValue>

公共+私有:

<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>

(其中每个命名的XML元素映射到RSAParameters结构上的同名字段)

否则,您可以/应该使用最适合您和您的应用程序的任何序列化机制。

答案 1 :(得分:2)

目前,在使用纯.net核心时,你得到的更少:

  

最后,这意味着您可以立即构建.NET Core,并期待   稍后点亮的更多功能,随着时间的推移会变得更容易   继续。是否想成为早期采用者少用   现在有特色框架或者稍后会有更多功能   添加并且第三方生态系统已经赶上了   (艰难的)我们都必须自己决定。

如果你在.net核心中定位完整的.net框架,你将可以使用它们。

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.0"
  },

  "frameworks": {
    "net461": {}
  }
}

例如:

,它们将无法使用
"frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },