使用FormsAuthentication我们编写这样的代码:
if (IsValidUser())
{
FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
FormsAuthentication.RedirectFromLoginPage(userName, createPersistentCookie);
}
Run Code Online (Sandbox Code Playgroud)
如何手动创建身份验证cookie而不是写入FormsAuthentication.SetAuthCookie(userName, createPersistentCookie)?
如何将登录页面中的重定向URL存储在字符串变量中而不是写入FormsAuthentication.RedirectFromLoginPage(userName, createPersistentCookie)?
我正在使用与此处提供的类似的字符串加密/解密类作为解决方案。
\n这在 .Net 5 中对我来说效果很好。
\n现在我想将我的项目更新到 .Net 6。
使用 .Net 6 时,解密的字符串确实会根据输入字符串的长度在某个点被截断。
\n\xe2\x96\xb6\xef\xb8\x8f 为了方便调试/重现我的问题,我在这里创建了一个公共重现存储库。
\n两者都使用完全相同的输入"12345678901234567890"和路径短语调用加密方法"nzv86ri4H2qYHqc&m6rL"。
.Net 5 输出:"12345678901234567890"
\n.Net 6 输出:"1234567890123456"
长度之差为4.
我还查看了.Net 6 的重大更改,但找不到可以指导我找到解决方案的内容。
\n我很高兴就我的问题提出任何建议,谢谢!
\n加密等级
\npublic static class StringCipher\n{\n // This constant is used to determine the keysize of …Run Code Online (Sandbox Code Playgroud) 我有一个程序可以保存一个带有高分的.txt文件:
// Create a file to write to.
string createHighscore = _higscore + Environment.NewLine;
File.WriteAllText(path, createText);
// Open the file to read from.
string createHighscore = File.ReadAllText(path);
Run Code Online (Sandbox Code Playgroud)
问题是用户可以使用texteditor尽可能简单地编辑文件.所以我想让文件不可读/不可编辑或加密它.
我的想法是我可以将数据保存在资源文件中,但是我可以在资源文件中写入吗?或者将其保存为.dll,加密/解密或查找MD5-sum/hash.
我写了下面的C#代码来登录JIRA Rest API:
var url = new Uri("http://localhost:8090/rest/auth/latest/session?os_username=tempusername&os_password=temppwd");
var request = WebRequest.Create(url) as HttpWebRequest;
if (null == request)
{
return "";
}
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = 200;
request.KeepAlive = false;
using (var response = request.GetResponse() as HttpWebResponse)
{
}
Run Code Online (Sandbox Code Playgroud)
当我执行它时,应用程序继续运行而不返回任何响应.请建议这是否是使用REST API调用JIRA登录的正确方法
我需要加密一个字符串,然后再次解密它.
我在这里实现了解决方案并且它运行良好,但结果字符串不合适,因为它需要简单且足够短以供用户使用.
我正在加密递增数据库ID(从1开始)并且不会超过500.理想情况下,我希望加密字符串的长度不超过6个字符.
任何想法赞赏..
编辑:这是一个冗长的形式,用户可以在以后使用此生成的字符串恢复
我正在寻找一种简单的方法来使用固定密钥(将存储在我的配置中)加密和解密某些数据,并将结果存储为字符串(base16或hex).
就像是
string myString = "hello world";
string myKey = "k2k3aij3h";
string enc = new Algorithm().Encrypt(myString, myKey);
string dec = new Alrorithm().Decrypt(enc, myKey);
Run Code Online (Sandbox Code Playgroud) 我在C#中有以下代码
PasswordDeriveBytes DerivedPassword = new PasswordDeriveBytes(Password, SaltValueBytes, HashAlgorithm, PasswordIterations);
byte[] KeyBytes = DerivedPassword.GetBytes(32);
Run Code Online (Sandbox Code Playgroud)
我正在使用"SHA1"哈希算法.
根据SHA1定义,它生成160位(20字节)密钥.我的问题是GetBytes方法如何从DerivedPassword中获取32个字节,GetBytes方法后面使用了什么算法?
我正在尝试创建一个静态类和方法来加密和解密 asp.net 核心中的数据。
但问题是我必须使用 DI 在构造函数中获取“IDataProtectionProvider 提供者”,然后将其传递给方法以便使用 CreateProtector。
我不希望那样,直接想在它自己的方法中实例化 IDataProtectionProvider 提供者。
控制器代码:
private readonly IDataProtectionProvider _provider;
public addMDL(IDataProtectionProvider provider)
{
_provider = provider;
}
public IActionResult OnGet()
{
DataProProvider.decData(0, "ABC", _provider)
}
Run Code Online (Sandbox Code Playgroud)
静态类是:
public static class DataProProvider
{
public static string encData(int intData, string strData, IDataProtectionProvider provider)
{
string str;
IDataProtector dataProtector;
dataProtector = provider.CreateProtector("AA");
if (!string.IsNullOrEmpty(strData))
{
str = dataProtector.Protect(strData);
}
else
{
str = dataProtector.Protect(intData.ToString());
}
return str;
}
public static string decData(int intData, string strData, IDataProtectionProvider provider) …Run Code Online (Sandbox Code Playgroud) c# ×9
encryption ×4
cryptography ×3
.net ×2
.net-6.0 ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
jira ×1
md5sum ×1
migration ×1
mono ×1
obfuscation ×1
pbkdf2 ×1
rest ×1