我怎么能快速做到这一点?
当然,我可以这样做:
static bool ByteArrayCompare(byte[] a1, byte[] a2)
{
if (a1.Length != a2.Length)
return false;
for (int i=0; i<a1.Length; i++)
if (a1[i]!=a2[i])
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
但我正在寻找BCL功能或一些经过高度优化的可靠方法来实现这一目标.
java.util.Arrays.equals((sbyte[])(Array)a1, (sbyte[])(Array)a2);
Run Code Online (Sandbox Code Playgroud)
很好地工作,但它看起来不适用于x64.
请注意我的超快速的答案在这里.
嘿,我想在手机上存储密码的哈希,但我不知道该怎么做.我似乎只能找到加密方法.哈希密码的最佳方法是什么?谢谢
目前我用明文哎呀写它!,这是一个内部计划所以它并没有那么糟糕,但我想做得对.在写入注册表时我应该如何加密这个以及如何解密呢?
OurKey.SetValue("Password", textBoxPassword.Text);
Run Code Online (Sandbox Code Playgroud) 由于SHA1的加密分析取得了重大进展,因此应该逐步取消SHA2(维基百科).
然而,为了在PBKDF2中用作底层散列函数,它基本上用作PRNG.因此,使用SHA1作为PBKDF2的哈希值仍然是安全的,对吧?
我试图创建在ASP.Net成员资格系统默认的SHA-1密码哈希的纯T-SQL表示.理想情况下,我会得到的是:
UserName Password GeneratedPassword
cbehrens 34098kw4D+FKJ== 34098kw4D+FKJ==
Run Code Online (Sandbox Code Playgroud)
注意:那里有伪造的base-64文本.我有base64_encode和解码函数正确往返.这是我的尝试,但不起作用:
SELECT UserName, Password, dbo.base64_encode(HASHBYTES('SHA1', dbo.base64_decode(PasswordSalt) + 'test')) As TestPassword FROM aspnet_Users U JOIN aspnet_membership M ON U.UserID = M.UserID
Run Code Online (Sandbox Code Playgroud)
我尝试了很多关于主题的变化,但没有用.我需要在纯T-Sql中执行此操作; 涉及控制台应用程序或类似的东西将使工作翻倍.
因此,如果有人能提供从ASP.Net会员资料中复制该密码的语法应该是什么,我将非常感激.
您建议以哪种方式在和中创建安全密码重置链接?我的意思是,我会创建一个随机令牌,对吧?如何在发送给用户之前对其进行编码?是MD5不够好?你知道其他任何安全方式吗?MVCC#
在我的应用程序中有一个密码字段.当用户输入密码时,它应该加密该密码并存储到数据库中.当用户登录该应用程序时,应从数据库中获取密码并进行解密.
可能吗??
我正在尝试创建一个登录程序,该程序将使用保存在数据库中的用户名和密码来检查用户输入的内容.出于某种原因,程序中的"if(dr.HasRows)"部分无效.当我尝试没有尝试捕获,我得到并错误"可能错误的空声明".我做错了什么?
SqlConnection Connection = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Logins.mdf;Integrated Security=True");
try
{
Connection.Open();
MessageBox.Show("Connection Succesful");
if (Connection != null && Connection.State == ConnectionState.Closed);
SqlCommand cmd = new SqlCommand("SELECT Count(*) FROM Logins WHERE Username='" + txtUsername.Text + "' and Password='" + txtPassword.Text + "'", Connection);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
MessageBox.Show("Login Success");
}
else
{
MessageBox.Show("Incorrect login");
}
}
catch (Exception)
{
MessageBox.Show("Connection Unsuccesful");
}
Run Code Online (Sandbox Code Playgroud) 我是编程的新手.我有我的程序有问题,我所要做的是创建一个注册页面,以便用户可以注册,它会保存到SQL数据库,但我得到了一个错误,我不知道这意味着什么,我会全贴错误消息抱歉,如果它不具体.如果可能的话,请用简单的语言向我解释.
这是我的代码:
protected void registerBtn_Click(object sender, EventArgs e)
{
String conString = @"Data Source=sql-server;Initial Catalog=wa310;Integrated Security=True";
SqlConnection myConnection = new SqlConnection(conString);
string cmd = "INSERT INTO Student( First_Name, Surname, User_ID, Password) VALUES ( '" + fNameTxt.Text + "' , '" + sNameTxt.Text + "','" + userIdTxt.Text + "' ,'" + passwordTxt.Text + "')";
SqlCommand myCommand = new SqlCommand(cmd, myConnection);
try
{
myCommand.Connection = myConnection;
myConnection.Open();
myCommand.ExecuteNonQuery();
Label1.Text = "You have successfully registered";
}
catch (Exception ex)
{
Label1.Text = "Exception …Run Code Online (Sandbox Code Playgroud) 请不要将此标记为副本,因为我已经检查了多个帖子,但没有一个对我有帮助.
我正在建立一个有登录页面的网站,我读了这篇文章
https://www.codeproject.com/Articles/704865/Salted-Password-Hashing-Doing-it-Right#normalhashing
关于如何使我的登录安全.
现在我明白,在每次注册时,我必须创建CSPRNG(加密安全伪随机数生成器)并将其添加到用户提交的密码,然后散列此混合并将其存储在DB中,并为每个用户存储盐,因为每个用户都是随机的.我的问题是,最简单,最简单的方法是什么.
在我的控制器中,我通过这种方法获取用户名和密码
public JsonResult Login(LoginModel data)
{
//some code...
//...
}
Run Code Online (Sandbox Code Playgroud)
我的登录模型包含
public class LoginModel
{
public string Username { get; set; }
public string Password { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以我得到的用户名和密码就像(字符串a = data.Username,...)
我已将此添加到我的项目中,但我不知道如何从这里继续
using System.Security.Cryptography;
Run Code Online (Sandbox Code Playgroud)
我知道如何保存在数据库中肯定我只想知道,如何制作随机盐(可能使用RNGCryptoServiceProvider),以及如何将其添加到用户的密码,然后散列最终结果.谢谢你的帮助.
我们有一个应用程序,我们有一个问题,我们有一个加密密码的方法,但我们需要另一个解密密码的功能.
public string Encrypt(string originalPassword)
{
if (originalPassword == null)
return String.Empty;
SHA1 sha1 = new SHA1CryptoServiceProvider();
Byte[] originalBytes = ASCIIEncoding.Default.GetBytes(originalPassword);
Byte[] encodedBytes = sha1.ComputeHash(originalBytes);
//Convert encoded bytes back to a 'readable' string
return BitConverter.ToString(encodedBytes);
}
Run Code Online (Sandbox Code Playgroud) c# ×9
asp.net ×3
hash ×3
.net ×2
asp.net-mvc ×2
encryption ×2
passwords ×2
security ×2
sql-server ×2
arrays ×1
cryptography ×1
j# ×1
message ×1
pbkdf2 ×1
performance ×1
sha1 ×1
sql ×1
t-sql ×1