我刚遇到MachineKey.Protect()
方法。我之前没见过(承包商将其引入代码库)。这看起来很有趣,但documentation关于它正在做的事情有点稀疏。
我不是一个盲目追随微软领导而没有经过一些调查的人,所以我试图找到关于如何这个有用的文档,它使用什么ciper,关键有多大,怎么样密钥生成等。但是文档包含的信息非常少,我找不到任何有关如何实现的信息:
此方法取代了Encode方法,该方法需要调用方 指定明文数据是否应加密,签名或 都。 Protect方法执行适当的操作和 安全地保护数据。通过此方法生成的密文数据 只能通过Unprotect方法解密。
purpose参数是可以锁定的可选原因列表 密文到特定目的。此参数可让您隔离 由一个中的不同子系统执行的加密操作 应用。恶意客户端应该无法获得结果 一个子系统的Protect方法,并将其作为另一个子系统的输入 子系统的Unprotect方法,可能会危及应用程序 安全。目的参数有助于确保受保护的数据可以 仅由最初生成它的组件使用。 应用程序应确保每个子系统使用唯一的 用途清单。
所以任何人都可以了解一下用于“保护”发送到其中的数据的密码?任何最佳使用方法也都很有用。何时适合使用,何时不适用?
答案 0 :(得分:2)
machineKey Element指定用于加密的算法和密钥。
继续发表评论后,MachineKey类的文档包含以下代码段,指向machineKey Element
MachineKey类提供了公开ASP.NET提供的散列和加密逻辑的方法。有关ASP.NET使用哪种加密和散列算法的信息以及它与它们一起使用的键值,请参阅machineKey元素(ASP.NET设置架构)。