gpt4 book ai didi

.net - 利用 ASP.NET machineKey 加密我自己的数据

转载 作者:行者123 更新时间:2023-12-03 06:21:11 33 4
gpt4 key购买 nike

我想在 ASP.NET MVC 应用程序中加密一些数据,以防止用户篡改它。我可以使用密码学类来进行实际的加密/解密,没有问题。主要问题是确定在哪里存储加密 key 并管理对其的更改。

由于 ASP.NET 已经为各种事物(ViewData 加密等)维护了 machineKey,我想知道是否有任何 ASP.NET 函数可以让我使用 machineKey 加密/解密自己的数据?这样我就不必设计自己的 key 管理系统。

最佳答案

对于 .NET Framework 4.5,您应该使用新的 API:

public class StringProtector
{

private const string Purpose = "Authentication Token";

public string Protect(string unprotectedText)
{
var unprotectedBytes = Encoding.UTF8.GetBytes(unprotectedText);
var protectedBytes = MachineKey.Protect(unprotectedBytes, Purpose);
var protectedText = Convert.ToBase64String(protectedBytes);
return protectedText;
}

public string Unprotect(string protectedText)
{
var protectedBytes = Convert.FromBase64String(protectedText);
var unprotectedBytes = MachineKey.Unprotect(protectedBytes, Purpose);
var unprotectedText = Encoding.UTF8.GetString(unprotectedBytes);
return unprotectedText;
}

}

理想情况下,“目的”应该是已知的一次性有效值,以防止伪造。

关于.net - 利用 ASP.NET machineKey 加密我自己的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3681493/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com