MachineKey.Protect()使用什么密码?

时间:2015-10-02 09:07:07

标签: c# security cryptography

我刚遇到MachineKey.Protect()方法。我之前没见过(承包商将其引入代码库)。这看起来很有趣,但documentation关于它正在做的事情有点稀疏。

我不是一个盲目追随微软领导而没有经过一些调查的人,所以我试图找到关于如何这个有用的文档,它使用什么ciper,关键有多大,怎么样密钥生成等。但是文档包含的信息非常少,我找不到任何有关如何实现的信息:

  

此方法取代了Encode方法,该方法需要调用方   指定明文数据是否应加密,签名或   都。 Protect方法执行适当的操作和   安全地保护数据。通过此方法生成的密文数据   只能通过Unprotect方法解密

     

purpose参数是可以锁定的可选原因列表   密文到特定目的。此参数可让您隔离   由一个中的不同子系统执行的加密操作   应用。恶意客户端应该无法获得结果   一个子系统的Protect方法,并将其作为另一个子系统的输入   子系统的Unprotect方法,可能会危及应用程序   安全。目的参数有助于确保受保护的数据可以   仅由最初生成它的组件使用。   应用程序应确保每个子系统使用唯一的   用途清单。

所以任何人都可以了解一下用于“保护”发送到其中的数据的密码?任何最佳使用方法也都很有用。何时适合使用,何时不适用?

1 个答案:

答案 0 :(得分:2)

machineKey Element指定用于加密的算法和密钥。

继续发表评论后,MachineKey类的文档包含以下代码段,指向machineKey Element

  

MachineKey类提供了公开ASP.NET提供的散列和加密逻辑的方法。有关ASP.NET使用哪种加密和散列算法的信息以及它与它们一起使用的键值,请参阅machineKey元素(ASP.NET设置架构)。