C# 加密登录

2024-01-02

我正在尝试创建一个简单的 asp.net 网站,允许用户注册和登录。我已成功地将所有数据存储在数据库中,并在登录表单中对用户进行身份验证。然而我现在想做的是每当新用户注册时将密码以 MD5 格式存储在数据库中并匹配哈希值以便用户能够登录。

这是注册部分中将用户存储在数据库中的代码:

try
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["AssignmentDBConnectionString"].ConnectionString);
        conn.Open();
        string insertQuery = "insert into [AsTable] ([Username],Email,Password) values (@Username ,@Email, @Password)";
        SqlCommand com = new SqlCommand(insertQuery, conn);
        com.Parameters.AddWithValue("@Username", TextBoxUsername.Text);
        com.Parameters.AddWithValue("@email", TextBoxEmail.Text);
        com.Parameters.AddWithValue("@password", TextBoxPass.Text);

        com.ExecuteNonQuery();
        Response.Redirect("Manager.aspx");
        Response.Write("Registration Completed");

        conn.Close();

    }
    catch (Exception ex)
    {
        Response.Write("Error:"+ex.ToString());
    }

这是登录部分中的代码,用于对用户进行身份验证以便他登录:

conn.Open();
        string checkPasswordQuery = "select Password from [AsTable] where Username ='" + TextBoxUsername.Text + "'";
        SqlCommand passcom = new SqlCommand(checkPasswordQuery, conn);
        string password = passcom.ExecuteScalar().ToString().Replace(" ","");
        if (password == TextBoxPassword.Text)
        {
            Session["New"] = TextBoxUsername.Text;
            Response.Write("Password is correct");
            Response.Redirect("Index.aspx");
        }
        else
        {
            Response.Write("Password is not correct");
        }
    }

    else
    {
        Response.Write("Username is not correct");
    }

}

有什么想法要改变吗?


这就是我处理加密的方式

首先我创建一个将简单字符串转换为 sha256 的方法(我认为这比 md5 更好)

public string ToSHA256(string value)
    {
        SHA256 sha256 =  SHA256.Create();

        byte[] hashData = sha256.ComputeHash(Encoding.Default.GetBytes(value));
        StringBuilder returnValue = new StringBuilder();

        for (int i = 0; i < hashData.Length; i++)
        {
            returnValue.Append(hashData[i].ToString());
        }

        return returnValue.ToString();
    }

then

只需将创建用户时的代码更改为

try
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["AssignmentDBConnectionString"].ConnectionString);
    conn.Open();
    string insertQuery = "insert into [AsTable] ([Username],Email,Password) values (@Username ,@Email, @Password)";
    SqlCommand com = new SqlCommand(insertQuery, conn);
    com.Parameters.AddWithValue("@Username", TextBoxUsername.Text);
    com.Parameters.AddWithValue("@email", TextBoxEmail.Text);
    com.Parameters.AddWithValue("@password", ToSHA256(TextBoxPass.Text));

    com.ExecuteNonQuery();
    Response.Redirect("Manager.aspx");
    Response.Write("Registration Completed");

    conn.Close();

}
catch (Exception ex)
{
    Response.Write("Error:"+ex.ToString());
}

然后在找回密码时

conn.Open();
    string checkPasswordQuery = "select Password from [AsTable] where Username ='" + ToSHA256(TextBoxUsername.Text) + "'";
    SqlCommand passcom = new SqlCommand(checkPasswordQuery, conn);
    //string password = passcom.ExecuteScalar().ToString().Replace(" ","");
    if (password == ToSHA256(TextBoxPassword.Text))
    {
        Session["New"] = TextBoxUsername.Text;
        Response.Write("Password is correct");
        Response.Redirect("Index.aspx");
    }
    else
    {
        Response.Write("Password is not correct");
    }
}

else
{
    Response.Write("Username is not correct");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 加密登录 的相关文章

随机推荐

  • 为类模板声明用户定义的 OpenMP 缩减

    使用 OpenMP 时 我想为类模板声明用户定义的缩减 include
  • 如何在 Prometheus 或 Grafana 上编写“或”逻辑运算符

    我需要编写一个使用我定义的任何不同作业的查询 job traefik OR job cadvisor OR job prometheus 是否可以编写逻辑二元运算符 普罗米修斯有一个or逻辑二元运算符 但您在这里问的是向量选择器 您可以为此
  • 当 UserControl 更改可见性时聚焦于 TextBox

    我在画布内加载了一个用户控件 默认情况下 此用户控件的可见性已折叠 当我的窗口的特定文本框聚焦时 用户控件变得可见 当用户控件变得可见时 我想将焦点设置到用户控件内的另一个文本框 我尝试这样做 private void UserContro
  • 从 USRP N210 设备检索数据

    N210 连接到 RF 前端 该前端使用 GNU Radio Companion 进行配置 我可以通过 FFT 图看到信号 我需要接收到的信号 usrp2 输出 作为数字 usrp sense spectrum py 也将功率和噪声地板输出
  • 即使有 0 个连接,Aws Aurora Serverless v2 也不会缩减至 0.5 ACU

    我正在运行一个 v2 实例 并且根据 aws 文档 您应该只为实际使用的资源付费 我有一个实例 大多数时候连接数为 0 但它永远不会缩减到 2 个 ACU 以下 请参阅下面的图片以供参考 我的实例设置在 0 5 16ACU 之间扩展 但负载
  • 如何更改使用“rails new”命令创建的默认 gemfile?

    我最近遇到一个问题 我必须将以下内容添加到我的 gemfile 中 gem execjs gem therubyracer 我必须这样做以避免启动 Rails 服务器时发生 JavaScript 运行时错误 我希望将此修改添加到使用 Rai
  • 评估具有许多未知因素的项目

    我正在开展一个具有许多未知因素的项目 例如将应用程序从一个平台移动到另一个平台 我最初的估计有很大偏差 我无法真正确定这一切何时结束 我该如何处理无法评估这样的项目的情况 这并不是说我要在屏幕上添加一个按钮或设计一个网站 或创建应用程序 甚
  • run()方法后线程继续运行

    我在游戏中播放声音时遇到问题 当处理声音播放的线程退出它的 run 方法时 它不会终止 结束 停止 我知道正是这种方法导致了问题 因为当我将整个事情注释掉时 就不会创建更多线程了 用 JVisualVM 检查 问题是退出 run 方法后线程
  • 在 UWP 应用程序上使用 VB.net 获取 IPGlobalProperties

    我正在 Visual Studio 2017 中使用 VB 编写一个非常简单的通用 Windows 应用程序 该应用程序应该向用户提供基本的网络信息 因此我想使用以下方式收集数据IPGlobalProperties并打印 作为第一个例子 D
  • 如何将种子数据放入SQL Server docker镜像中?

    我有一个使用 ASP NET Core 和 SQL Server 的项目 我正在尝试将所有内容放入 docker 容器中 对于我的应用程序 我需要在数据库中有一些初始数据 我可以使用来自 microsoft microsoft mssql
  • 如何在react-native中实现刮刮卡/视图?

    我正在寻找一个包来在反应本机中实现刮刮卡 我找到了这个图书馆https github com thebylito react native scratch card https github com thebylito react nati
  • 我可以在云函数中以管理员身份使用通配符查询 firestore 吗?

    exports updateRelatedCards functions firestore document topic newTopic onWrite snap context gt const newTopic snap data
  • 联合中的标量成员是否计入公共初始序列?

    In the union U下面 如果a or b是活动成员 是否定义了访问行为c struct A int a struct B int a double b union U A a B b int c In 类 联盟 https tim
  • Materialise 中的 Roboto 字体在 Firefox 中的显示问题

    我在用物化 http materializecss com设计我的一些网页的样式 我注意到 Roboto 字体在 Firefox v43 0 3 中无法正确呈现 但在 Chrome 中看起来不错 两个浏览器都从我的服务器下载 woff2 字
  • 访问查询会自动被截断吗?

    以前可能有人问过这个问题 但我似乎无法在任何地方找到任何相关答案 几周前 我在 Access 2003 中编写了几个长查询 我今天想使用这些查询 发现它们被截断了 查询按其应有的方式开始 并在中间的某个地方显示AS Alias 其余的都不见
  • 使用 LLVM 创建本地字符串

    我正在尝试使用 LLVM 创建一个局部变量来存储字符串 但我的代码当前抛出语法错误 lli test2 ll 8 23 error constant expression type mismatch 1 load 6 x i8 c hell
  • 使用 p:calendar 相互限制开始和结束日期时间(无验证)

    我们需要向用户呈现两个 p calendar 组件 分别代表开始日期和结束日期 两个日期时间都有日期 小时和分钟 PrimeFaces 拥有完美mindate maxdate minHour maxHour minMinute and mi
  • 如何使用正则表达式找到除某些短语之外的所有内容?

    好的 所以我有一个短语 foo bar 我想找到除 foo bar 之外的所有内容 这是我的文字 ipsum dolor foo bar Lorem ipsum dolor sat amet 脂肪精英协会eiusmod tempor foo
  • 从phpmyadmin导出数据时返回sql查询页面

    我在 phpMyAdmin 上运行以下查询我获得了数据 但是当单击 导出 时 它会重定向到 sql 查询选项卡 Select sad firstname sad lastname sfo base total invoiced sad em
  • C# 加密登录

    我正在尝试创建一个简单的 asp net 网站 允许用户注册和登录 我已成功地将所有数据存储在数据库中 并在登录表单中对用户进行身份验证 然而我现在想做的是每当新用户注册时将密码以 MD5 格式存储在数据库中并匹配哈希值以便用户能够登录 这