比如用户密码为:123456 而写到数据库中的为102015605XFFS 等这种加密状态,而在程序有又可以把它解释成原来的:123456

解决方案 »

  1.   

    测试
    DECLARE @ClearPWD varchar(255) 
    DECLARE @EncryptedPWD varbinary(255)
    SELECT @ClearPWD = 'test'
    SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
    SELECT @EncryptedPWD
      

  2.   

    这样的思路可以吗?
    用微软提供的SHA1单向不可逆加密方法,
        public string ToEncryptPassword(string strPassword)
        {
            return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strPassword, "SHA1");
        }把加密后的字符串写入数据表,然后在每次登陆时把输入的密码再通过ToEncryptPassword加密一次,与数据表中的对比。相同即可!
      

  3.   

    一般都是单向加密,拿加密后的密码进行比对,这样可以防止明码在网络上传输,对用户隐私也是保护。 加密方法很多了,,net下不少呢。
      

  4.   

    一般用MD5加密。给你个加密的类你用用看。 string passwordmd5
     = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile("要加密的字符串", "MD5").ToLower()
      

  5.   

    在SQL SERVER中可利用pwdencrypt()函数给字符串加密,用pwdcompare()函数对加密后的密码进行比较--加密DECLARE @ClearPWD nvarchar(255)   --密码字符串
    DECLARE @EncryptedPWD varbinary(255)  --加密后的密码
    SELECT @ClearPWD = 'zzm'  --给密码赋值
    SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))  --给密码加密
    SELECT @EncryptedPWD   --这时的密码就已经被加密了--比较SELECT pwdcompare('zzm', @EncryptedPWD, 0)  --@ClearPWD为传入的密码字符串,@EncryptedPWD为加密后的密码,0为掩码状态(一般填0就好),如果列出的结果为1表示密码正确,为0表示密码错误
    可以在程序里面执行这些sql语句进行加密和比较。上面的加密部分就写到注册,下面的比较部分就写到登陆里面
      

  6.   

            string sql = "select * from sys_Zjonline where z_Username='" + LoginU.Text + "' and z_pwd='" + myNameSpace.Comm_CommonClass.MD5_Encrypts(LoginP.Text) + "'";