- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在该方法的官方描述中,微软在以下链接中解释说 MachineKey.Protect“通过加密或签名来保护指定的数据”:https://msdn.microsoft.com/en-us/library/system.web.security.machinekey.protect(v=vs.110).aspx
这是什么意思?它如何决定加密、签名或两者兼而有之?
最佳答案
两者都是MSDN documentation或 .NET Web Development and Tools Blog不要确切说明这是如何工作的,但是this article提到 MachineKey API 执行这两个操作(顺便说一下,这更安全)。
我更深入地了解了 .NET 引用源,显然这是真的。查看这段代码:
using (ICryptoTransform encryptor = encryptionAlgorithm.CreateEncryptor()) {
using (CryptoStream cryptoStream = new CryptoStream(memStream, encryptor, CryptoStreamMode.Write)) {
cryptoStream.Write(clearData, 0, clearData.Length);
cryptoStream.FlushFinalBlock();
// At this point:
// memStream := IV || Enc(Kenc, IV, clearData)
// These KeyedHashAlgorithm instances are single-use; we wrap it in a 'using' block.
using (KeyedHashAlgorithm signingAlgorithm = _cryptoAlgorithmFactory.GetValidationAlgorithm()) {
// Initialize the algorithm with the specified key
signingAlgorithm.Key = _validationKey.GetKeyMaterial();
// Compute the signature
byte[] signature = signingAlgorithm.ComputeHash(memStream.GetBuffer(), 0, (int)memStream.Length);
// At this point:
// memStream := IV || Enc(Kenc, IV, clearData)
// signature := Sign(Kval, IV || Enc(Kenc, IV, clearData))
// Append the signature to the encrypted payload
memStream.Write(signature, 0, signature.Length);
// At this point:
// memStream := IV || Enc(Kenc, IV, clearData) || Sign(Kval, IV || Enc(Kenc, IV, clearData))
// Algorithm complete
byte[] protectedData = memStream.ToArray();
return protectedData;
}
}
}
这来自 NetFXCryptoService,如果您没有配置 DataProtector,它是默认的加密提供程序
关于c# - MachineKey.Protect 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431537/
我正在使用 .net 4.5 和 MachineKey.Protect/MachineKey.Unprotect 来加密和解密值。我想知道当我们将代码部署到我们将拥有多个服务器的生产环境时,Machi
我们有一个 .NET 4.5.x oss application我们正在使用 git deploy 部署到 azure 网站。我们有一个构建服务器,它将工件提交到 git 存储库,然后我们将它用于 g
我在哪里可以找到 machineKey ASP.NET 的配置部分? 我的申请中没有 Web.config , 根目录中没有 Web.config而我的 machine.config 中没有. 这是否
在该方法的官方描述中,微软在以下链接中解释说 MachineKey.Protect“通过加密或签名来保护指定的数据”:https://msdn.microsoft.com/en-us/library/
我使用 MachineKey.Protect() 方法来加密在我的 asp.net MVC 应用程序中作为查询字符串传递的 id。 这是我用来加密/解密的代码: public static strin
在 ASP.NET 中可以设置 machineKey以编程方式设置? 我们使用的 Web 应用程序存储在数据库中加密的敏感信息,因此如果我们可以将解密 key 放在那里,它会很方便。 最佳答案 不;
对于 IIS 托管的 ASP.NET MVC 4 网站,我想在运行时在代码中动态调整机器 key 。 机器 key 、加密和验证 key 以及要使用的算法都存储在数据库中。我不想从 web.confi
我正在使用 Machinekey.Protect 和 Machinekey.Unprotect 来加密我的应用程序中的值。一位潜在客户正在执行安全审计,并询问了这种方法使用的加密算法,我正在努力使用谷
我想在 ASP.NET MVC 应用程序中加密一些数据,以防止用户篡改它。我可以使用密码学类来进行实际的加密/解密,没有问题。主要问题是确定在哪里存储加密 key 并管理对其的更改。 由于 ASP.N
" validationKey 到底有什么作用?假设我使用 SHA1 创建一个哈希值。 validationKey 如何发挥作用? 考虑这段代码: HMACSHA1 hashSha = new HMA
机器 key 在 asp.net 中有哪些不同的用途?我认为以下是正确的,但认为可能还有更多。 多个应用程序可以使用同一个 cookie 多个服务器可以使用相同的 View 状态 最佳答案 Machi
我想加密我在 cookie 中使用的 ID。我正在使用 ASP.NET 4.5,所以我想使用 MachineKey.Protect 来完成它。 代码 public static string
将 ValidationKey 和 DecryptionKey 保留为默认值时生成的默认 key 长度是多少?例如: 我无法在 MSDN 上的任何地方找到此文档。 我想生成一个静态机器 key 并使
我想将 machineKey 添加到我的 machine.config 中,因为我正在使用 Web 农场场景中的 web.config 连接字符串的编程加密。 我的问题是,我应该将 machineKe
我们(实际上是我们的 IT 合作伙伴)最近为我们拥有的网络农场站点更改了一些 DNS,以便两台生产服务器在它们之间进行循环 DNS 切换。在此切换之前,我们实际上并没有遇到 WebResource.a
考虑到 System.Web.Security.MachineKey 使用本地计算 secret 钥来加密和解密同一框中的文本。如果我通过网络将加密文本发送到另一台计算机,我将如何使用此方法。远程计算
考虑 System.Web.Security.MachineKey 使用本地机器 key 来加密和解密同一个框中的文本。如果我通过网络将加密文本发送到另一台计算机,我将如何使用此方法。远程计算机将如何
MSDN : machineKey Configures algorithms and keys to use for encryption, decryption, and validation o
我需要在 ASP.NET(控制台应用程序、Powershell 等)之外加密一个 cookie,但由于这个 cookie 最终会被我的 MVC 应用程序读取,因此需要使用相同的 key 对其进行加密。
在我的 web.config 文件中,我有以下条目: 我需要使用 web config 转换方法交换某些 web 发布配置文件下的 validationKe
我是一名优秀的程序员,十分优秀!