在数据库中的表中,,密码字段的数据库类型是 varbinary 类型的,,用程序怎麽判断用户输入的密码是否正确??

解决方案 »

  1.   

    cast(用户输入的密码 as varbinary) = 密码字段
      

  2.   

    好的,,谢谢!!select convert (varbinary (20) , 'select')
    select convert (varchar (20), 0x73656c656374 )
      

  3.   

    你可以参考一下:
    --SQL自制未公开的加密函数
    DECLARE @ClearPWD varchar(255) 
    DECLARE @EncryptedPWD varbinary(255)
    SELECT @ClearPWD = 'test'
    SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
    SELECT @EncryptedPWD
    SELECT @EncryptedPWD = pwdencrypt(@ClearPWD)
    SELECT @EncryptedPWD
    --密码校验(没有对应的解密方法,只能用加密后的密文比较来校验)
    DECLARE @ClearPWD varchar(255) 
    DECLARE @EncryptedPWD varbinary(255)
    SELECT @ClearPWD = 'test'
    SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
    SELECT pwdcompare(@ClearPWD, @EncryptedPWD, 0) --密码正确
    SELECT pwdcompare('ErrorPassword', @EncryptedPWD, 0) --密码不正确