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

本文关键字:什么 密码 Protect MachineKey | 更新日期: 2023-09-27 18:15:52

我刚刚遇到了MachineKey.Protect()方法。我以前从未见过这种情况(承包商将其引入代码库)。这看起来很有趣,但是关于它所做的事情的文档有点稀疏。

我不是一个不经过调查就盲目追随微软的人,所以我试着在上找到如何工作的文档,它使用什么代码,密钥有多大,密钥是如何生成的,等等。但是文档包含的信息少得惊人,我找不到关于如何实现的任何其他信息:

此方法取代Encode方法,后者要求调用者指定明文数据是否应该加密、签名或两者都有。Protect方法执行相应的操作和安全保护数据。该方法产生的密文数据只能通过Unprotect方法解密

purposes形参是一个可选的可以锁定的原因列表将密文用于特定目的。此参数允许您进行隔离的不同子系统执行的加密操作应用程序。恶意客户端应该无法获得结果将一个子系统的保护方法作为输入馈送到另一个子系统子系统的Unprotect方法,可能危及应用程序安全。目的参数有助于确保受保护的数据可以只能由最初生成它的组件使用。应用程序应该确保每个子系统使用惟一的目的列表。

那么有人能解释一下它使用什么密码来"保护"发送到它的数据吗?任何关于用法的最佳实践也会很有用。什么时候使用合适,什么时候不合适,等等?

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

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

继注释之后,MachineKey类的文档包括以下代码片段,它指向machineKey Element

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