我看过类似的答案,但这是我正在寻找的,因为我没有从以前回答的问题中找到任何答案:
这是我的场景:我有一个表格[res_user]
,username, password, key_pin
其中保存了用户名、加密密码和 4 位密码或密钥。
我正在用 C# 制作一个应用程序,它允许经理登录并从应用程序本身对数据库进行更改。
首先提示管理员使用用户名、密码和他们提供的 key_pin 登录。该 pin 将加密和解密进出数据库的密码。
现在我有一个用户名[manager]
和一个加密密码已经保存在数据库中key_pin
。
如何确保登录的经理是正确的,这意味着我如何从 C# 应用程序比较数据库中的用户名和加密密码。
这些是我认为我将在应用程序本身中实现的步骤(在 c# 中使用 SQL 语法):
加密密码,
使用登录用户名获取数据库中保存的加密,以及
比较向应用返回是或否的加密以进行访问控制。
允许 5 次尝试登录。
这是我做的第一和第二部分:
try
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["STRING"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("dbo.Res_User", con))
{
cmd.CommandText = "INSERT INTO Res_User(username, password, key_pin) SELECT '" + username + "' , dbo.fnEncDecRc4('" + pin + "','" + password + "'), '" + pin + "'";
con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Added", "Information", MessageBoxButtons.OK);
cmd.CommandText = "SELECT password FROM Res_User WHERE username = @username";
cmd.Parameters.AddWithValue("@username", username);
cmd.ExecuteNonQuery();
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
MessageBox.Show(reader["password"].ToString(), "Information", MessageBoxButtons.OK);
}
}
}
我该如何去做第三部分?
只有有人可以帮我比较保存的编码。密码和登录密码。我在第一部分中所做的密码。
如果需要更多信息,请告诉我。
谢谢你。
任何帮助将不胜感激。