在winform上建立了 一个用户注册表 用来远程注册到MSSQL2000的数据库中 就是把帐号和密码保存到MSSQL的数据库里并且在注册过程中进行MD5加密 因为MSSQL里面的密码是MD5加密了的 代码该如何写各位高手麻烦给个这样的代码或地址谢谢

解决方案 »

  1.   

    连接本地数据库和连接远程数据库没有什么区别的。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时默认是一同安装的。
      

  2.   

    我们使用SHA1,你可以替换成MD5
    加密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加密后和数据库中的比较。