急求远程注册到SQL 在winform上建立了 一个用户注册表 用来远程注册到MSSQL2000的数据库中 就是把帐号和密码保存到MSSQL的数据库里并且在注册过程中进行MD5加密 因为MSSQL里面的密码是MD5加密了的 代码该如何写各位高手麻烦给个这样的代码或地址谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 连接本地数据库和连接远程数据库没有什么区别的。asp.net夜话之七:ADO.NET介绍在这里我们选择Microsoft SQL Server选项,连接到SQL Server数据库。如果我们在局域网中,我们可以点击“添加连接”界面中的刷新按钮来查看局域网中有哪些SQL Server数据库可以连接。连接到数据库可以用下面的方式:(1)如果要连接的数据库服务器与开发者的机器在同一个局域网里,可以使用局域网IP地址或者局域网中的电脑主机名;(2)如果要连接的数据库服务器与开发者的机器不在同一个局域网内,那么就要求数据库服务器必须有一个公网IP,我们可以使用公网IP来连接,如果数据库服务器还有互联网域名,那么用互联网域名也是可以的。(3)如果要连接的数据库服务器与开发者所使用的机器是同一台机器,那么可以使用以下几种方式之一:”(local)”或者”.”或者”127.0.0.1”。需要注意的是,如果在一台机器上运行者同一种数据库的不同版本,比如说在”zhoufoxcn”这台主机上同时运行着SQL 2000、SQL 2005和SQL Express三种版本,并且它们所使用的Windows服务名分别为”SQL2000”、”SQL2005”和”SQLExpress”,那么我们要连接到SQL 2000这个数据库上所使用的服务器名就应该填写”zhoufoxcn\SQL2000”这种“主机名\实例名”的方式或者“主机IP\实例名”,这种情况在同时安装了Visual Studio 2005和SQL 2005的朋友那里很常见,因为SQL Express是针对学生的功能有限的免费版本,这个版本的数据库在安装Visual Studio 2005时默认是一同安装的。 我们使用SHA1,你可以替换成MD5加密passwordpublic static string EncryptPassword(string password, string salt) { SHA1 hasher = new SHA1Managed(); byte[] saltedPassword = Encoding.ASCII.GetBytes(password + salt); byte[] hashedPassword = hasher.ComputeHash(saltedPassword); return Encoding.ASCII.GetString(hashedPassword); } salt时随机产生的字符串/// <summary> /// Generate random salt value. /// </summary> /// <returns>The salt</returns> public static string GenerateSalt() { int SALT_LENGTH = 10; char[] charArray = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".ToCharArray(); Random random = new Random(); StringBuilder randomSalt = new StringBuilder( SALT_LENGTH ); for( int i=0; i<SALT_LENGTH; i++ ) { char randomChar = charArray[(int)( charArray.Length * random.NextDouble() )]; randomSalt.Append( randomChar ); } return randomSalt.ToString(); }注册用户时,将password加密,然后将加密后的字符串和salt都保存在数据库中。登录的时候,从数据库中取得加密后的字符串和salt.再将用户输入的password加密后和数据库中的比较。 数据库查询问题~~~低级问题,望大虾解答 超时问题 C#删除指定路径文件 linq如何更新外键约束的列 各位大大们,请问下.NET程序是否不接受传入的CreateProcess设置的参数的? 可以创建项目在网络映射磁盘上吗? 有关treeview选中的checkbox的问题 问个小问题 为什么查询不到数据呢,郁闷! 如何得到TextBox中光标的当前位置,跟者有分 c# 关闭程序问题 List<T>如何返回记录的值
在这里我们选择Microsoft SQL Server选项,连接到SQL Server数据库。如果我们在局域网中,我们可以点击“添加连接”界面中的刷新按钮来查看局域网中有哪些SQL Server数据库可以连接。连接到数据库可以用下面的方式:
(1)如果要连接的数据库服务器与开发者的机器在同一个局域网里,可以使用局域网IP地址或者局域网中的电脑主机名;
(2)如果要连接的数据库服务器与开发者的机器不在同一个局域网内,那么就要求数据库服务器必须有一个公网IP,我们可以使用公网IP来连接,如果数据库服务器还有互联网域名,那么用互联网域名也是可以的。
(3)如果要连接的数据库服务器与开发者所使用的机器是同一台机器,那么可以使用以下几种方式之一:”(local)”或者”.”或者”127.0.0.1”。
需要注意的是,如果在一台机器上运行者同一种数据库的不同版本,比如说在”zhoufoxcn”这台主机上同时运行着SQL 2000、SQL 2005和SQL Express三种版本,并且它们所使用的Windows服务名分别为”SQL2000”、”SQL2005”和”SQLExpress”,那么我们要连接到SQL 2000这个数据库上所使用的服务器名就应该填写”zhoufoxcn\SQL2000”这种“主机名\实例名”的方式或者“主机IP\实例名”,这种情况在同时安装了Visual Studio 2005和SQL 2005的朋友那里很常见,因为SQL Express是针对学生的功能有限的免费版本,这个版本的数据库在安装Visual Studio 2005时默认是一同安装的。
加密password
public static string EncryptPassword(string password, string salt)
{
SHA1 hasher = new SHA1Managed();
byte[] saltedPassword = Encoding.ASCII.GetBytes(password + salt);
byte[] hashedPassword = hasher.ComputeHash(saltedPassword);
return Encoding.ASCII.GetString(hashedPassword);
}
salt时随机产生的字符串/// <summary>
/// Generate random salt value.
/// </summary>
/// <returns>The salt</returns>
public static string GenerateSalt()
{
int SALT_LENGTH = 10;
char[] charArray = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".ToCharArray();
Random random = new Random();
StringBuilder randomSalt = new StringBuilder( SALT_LENGTH ); for( int i=0; i<SALT_LENGTH; i++ )
{
char randomChar = charArray[(int)( charArray.Length * random.NextDouble() )];
randomSalt.Append( randomChar );
}
return randomSalt.ToString();
}注册用户时,将password加密,然后将加密后的字符串和salt都保存在数据库中。登录的时候,从数据库中取得加密后的字符串和salt.再将用户输入的password加密后和数据库中的比较。