前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C#操作Sql Server数据库以及MD5加密存储

C#操作Sql Server数据库以及MD5加密存储

作者头像
喜欢ctrl的cxk
发布于 2019-11-07 13:30:50
发布于 2019-11-07 13:30:50
2K00
代码可运行
举报
文章被收录于专栏:Don的成长史Don的成长史
运行总次数:0
代码可运行

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。undefined本文链接:https://blog.csdn.net/weixin_42449444/article/details/90476011

写在前面:

简单地写一下MD5加密存储和C#如何操作Sql Server数据库吧。(注意哦:真的是特别简单地写了一下几个对象的实例化)。

MD5加密存储:

首先要加上这个用于加密的命名空间using System.Security.Cryptography; 实例化MD5对象后先调用ComputeHash方法来将字符串进行加密处理,再用Convert来将字节型数组转化为字符串,这个字符串即为加密后的密码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//使用MD5加密明文密码
MD5 md5 = new MD5CryptoServiceProvider();  //实例化MD5对象
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(password));   //调用ComputeHash方法将字符串进行加密处理
password = Convert.ToBase64String(s);      //将字节类型的数组转换为字符串,得到加密后的密码

MD5是具有不可逆性的,一旦加密之后就无法再进行解密。我们一般是在账号注册时将密码通过MD5加密后存入数据库,新注册账号之后。我们打开sql server查询login_table表(提前建好的,建表代码略),可以看到存取的密码不再是明文而是经过MD5加密后的字符串。

在账号登录时我们需要判断输入的密码是否正确,而MD5加密是不可逆的 也就意味着它无法解密,所以我们需要将用户输入的密码再加密一次然后再与数据库中已加密存储的密码进行比对,如果比对结果一致则登陆成功。

C#操作Sql Server的几个对象:

首先要加上命名空间using System.Data.SqlClient; 我用到的对象其实也就是这几个,先拿用户登录界面这部分来举例子吧:

①SqlConnection:创建数据库连接对象。下面这段代码表示以sa的身份与sql server建立连接,并指定到Library这个数据库。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SqlConnection connection = new SqlConnection("Data Source=.;Initial Catalog=Library;User ID=sa;Password=sql123");  //实例化连接对象
connection.Open();   //打开连接,使用完后记得connection.Close();

②SqlCommand:执行SQL语句对象。下面这段代码表示用SqlCommand来执行SQL语句:SELECT userid,password FROM login_table WHERE username = '(用户输入的username)' AND password = '(用户输入的password)'。判断用户输入的账号密码是否正确。特别需要注意单引号不能舍去,不然不符合SQL语法。(login_table表是在sql server中建好的,这里不提供建表代码太简单啦 不值一提。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SqlCommand command = new SqlCommand("SELECT username,password FROM login_table WHERE username ='" + username + "' AND password ='" + password + "'", connection);

③SqlDataReader:创建一个查询一条或多条数据的对象,提供只读单向数据的快速传递。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SqlDataReader data = command.ExecuteReader();
data.Read();      //使用完后记得要data.Close();
if (data.HasRows)    //HasRows用来判断查询结果中是否有数据,返回值为true或false
{
    MessageBox.Show("登录成功!", "通知", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); //登录成功
    data.Close();   //关闭SqlDataReader对象
    connection.Close();  //关闭连接
    this.Visible = false;   //隐藏登录窗体
    new Form3().ShowDialog();   //打开管理员界面
}
else
{
   MessageBox.Show("登录失败!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

到这里 登录操作就写完了啦。下面再简单地写一下从sql server中读取某张表的数据信息,就拿借书办理这个界面的查询书籍列表为例吧。

④DataSet:创建一个本地数据存储对象,其实就是数据在内存区的缓存。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DataSet ds = new DataSet();   //实例化DataSet对象

⑤SqlDataAdapter:创建一个用于检索和保存数据的对象,可以用来填充DataSet。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SqlDataAdapter sda = new SqlDataAdapter("SELECT bookid '图书序列号',name '书名',author '作者',publisher '出版商',pubdate '出版时间',ISBN '国际标准书号',price '单价',booknum '库存数量' FROM book_table", connection);
sda.Fill(ds);   //向DataSet中填充数据
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
左右互搏术?SQL注入攻击自己一年前写的MD5加密程序
上软件工程这门课的时候,王老师说写代码的时候要严谨,顺带地提到了SQL注入并进行了简单的演示。那么什么是SQL注入呢?SQL注入是一种注入攻击,由于应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在应用程序中事先定义好的查询语句的结尾添加恶意的SQL语句,从而在管理员不知情的情况下,攻击者能够完全控制应用程序后面的数据库服务器实行非法操作。比如:攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;可以使用SQL注入来增删改查数据库中的数据记录,还可以未经授权非法访问用户的敏感数据:客户信息,个人数据,商业机密,知识产权等。
喜欢ctrl的cxk
2020/03/20
6630
C#通过邮箱验证来找回密码
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
1.6K0
网页上的账号、密码登陆验证,是如何实现的?(二)比对数据库中的账号密码
需求 通过在页面输入账号密码,实现从数据库查询数据并返回,验证成功后登录,打开主界面。 using System; using System.Collections.Generic; using Sy
跋扈洋
2021/04/25
2.3K0
网页上的账号、密码登陆验证,是如何实现的?(二)比对数据库中的账号密码
C#进阶-使用DBHelper工具类封装ADO.NET框架底层方法简化数据库操作
在C#开发中,与数据库的交互是常见的需求。通常,我们会使用ADO.NET直接执行SQL查询,虽然这种方法非常灵活,但容易导致代码重复,并且在处理多个SQL语句时容易出错。为了提高代码的可维护性和复用性,封装一个通用的数据库操作助手类(DBHelper)是非常有必要的。本文将详细介绍如何创建和使用一个DBHelper类来简化数据库操作。
Damon小智
2024/08/16
1761
C#进阶-使用DBHelper工具类封装ADO.NET框架底层方法简化数据库操作
Javaweb之Filter案例练习-自动登录问题和MD5加密
前面已经完成了Filter的自动登录,但是有问题,我们在web.xml中Filter的url-mapping中配置的规则是/*, 也就是这个网站的所有请求都拦截。这肯定不合适。我们本来访问/login.jsp,本来就是去登录,结果也进行了拦截。
凯哥Java
2019/08/17
4000
Javaweb之Filter案例练习-自动登录问题和MD5加密
ssm注册功能使用MD5加密简单案例
MD5加密全程是Message-Digest Algoorithm 5(信息-摘要算法),它对信息进行摘要采集,再通过一定的位运算,最终获取加密后的MD5字符串。
暴躁的程序猿
2022/03/24
3950
ssm注册功能使用MD5加密简单案例
C#二十九 数据封装
如果你经常从事基于.NET的应用程序的数据库开发,你会有这种感觉--总是觉得自己在反复编写相同的数据访问代码。很多相似的代码每天在复制来,粘贴去。你是否想过将数据访问代码包装在一个Helper函数里,以便能够在不同的类中共用?如果你还没有这样做,那么我这里就告诉你如何从复用的角度来设计和包装一个我们自己的数据访问类,从而减少冗余代码,提高开发效率。
用户9184480
2024/12/13
540
C#二十九 数据封装
php案例:MD5加密的注册登录
作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 前言 1.php 11.php 效果 ---- 前言 学习学习怎么通过md5加密.怎么进行注册登录操作. 1.php <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" c
贵哥的编程之路
2022/10/24
1.4K0
php案例:MD5加密的注册登录
C#数据库操作类
using System; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; u
zls365
2020/08/19
1.6K0
CS架构整合SQLserver数据库实现C#财务管理系统,报表分析系统
Connection对象:是一个连接对象,主要功能是建立于物理数据库的连接,主要包括4中访问数据库的对象类,如下:
计算机程序优异哥
2022/12/02
1.1K0
C#多曲线数据分析
明志德道
2023/10/21
2800
C#多曲线数据分析
c++实现登录注册功能(用Javaweb制作登录注册页面)
这两天c#大作业要求做一个简单的通讯录系统,我就先做了登录和注册的功能,在网上看了一些代码,自己再做,终于做出来了。做的不是很美观,但是可以简单实现。
全栈程序员站长
2022/07/30
3K0
c++实现登录注册功能(用Javaweb制作登录注册页面)
C#数据库操作的3种典型用法
由于最近和数据库打交道,需要用C#和SQL Server 2005进行操作,就把近段时间内的最常用的操作做个总结.本人也是第一次用C#操作数据库,所以这三种典型用法对初学者还是挺有帮助的.
阳光岛主
2019/02/19
6660
关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现
BindingNavigator: 就是DataGridView控件上面的那个,在工程里名字: bindngrDemo
全栈程序员站长
2022/09/14
4740
关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现
使用 C# 和 SQL Server 实现数据库的实时数据同步
在现代应用程序中,及时更新不同数据库之间的数据至关重要。本文将介绍如何在 SQL Server 中使用 C# 实现数据的实时同步。我们将使用 SQLDependency 类来监听数据库表的变化,并将这些变化实时地同步到另一张表中。
老K博客
2024/11/05
3260
【从业余项目中学习1】C# 实现XML存储用户名密码(MD5加密)
宋凯伦
2018/01/04
1.8K0
简单登录&密码md5加密登录&盐值+md5加密登录
我们这里直接获取了前端表单中的password,而且更重要的是在数据库中密码也没有进行加密,这样一来数据就会不安全,因为一旦数据库被攻破,那随之而来的就是用户的损失。这样的损失将会是惨痛的。
Tom2Code
2022/04/15
2.1K0
简单登录&密码md5加密登录&盐值+md5加密登录
使用C#进行数据库增删改查(一)
这节讲一下如何使用C#进行数据库的增删改查操作,本节以SQL Server数据库为例。
宿春磊Charles
2022/03/29
1.5K0
使用C#进行数据库增删改查(一)
C#二十五 连接式访问数据库
在连接式访问数据库方式下,数据库就好比一个水池,你要取水池里的水进行操作就必须先建立一条管道,连接就相当于通向数据库的管道。在操作时连接不可以断开,一旦连接断开将造成数据访问的严重错误。
用户9184480
2024/12/13
1080
C#二十五 连接式访问数据库
C#项目实战练习:做自己的QQ
  C#程序设计实战练习项目,做一个类似于QQ的软件,程序参考明日科技出版的《C#项目开发入门实战》第一章:Q友,做自己的QQ。
小孙同学
2022/01/17
7.6K0
C#项目实战练习:做自己的QQ
相关推荐
左右互搏术?SQL注入攻击自己一年前写的MD5加密程序
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验