--加密:
declare @logintable table(username varchar(20),passwd varbinary(256))
insert @logintable(username,passwd) values('yourname',pwdencrypt('123456'))declare @pwd varbinary(256)select @pwd=passwd from @logintable where username='yourname'
--比较:
if pwdcompare('12356',@pwd)=1
print 'true'
else 
print 'false'select * from @logintable

解决方案 »

  1.   

    这种加密是不可逆的,就是说不能解密,sqlserver自带的存储过程
      

  2.   

    自己写一个不就得了,如下一个较简单的
    Create  Procedure EnCode @InStr Varchar(20)
    As
    Declare @OutStr Varchar(20)
    Set @OutStr = ''
    Declare @i int
    Declare @j int
    Set @i=1
    while @i <= len(Rtrim(@InStr))
    Begin
    Set @j = ascii(SubString(@InStr,@i,1))+ len(Rtrim(@InStr))- @i 
    Set @OutStr = @OutStr + (Case When @j >126 then Char(@j -20) Else Char(@j) end)
    Set @i=@i+1
    End
    Select @OutStr
      

  3.   

    to txlicenhe(菜是菜点,还行)你这个存储过程不能对中文进行加密,请问该怎么实现中文加密?
      

  4.   

    Create  Procedure EnCode @InStr nVarchar(20)
    As
    Declare @OutStr nVarchar(20)
    Set @OutStr = ''
    Declare @i int
    Declare @j int
    Set @i=1
    while @i <= len(Rtrim(@InStr))
    Begin
    Set @j = ascii(SubString(@InStr,@i,1))+ len(Rtrim(@InStr))- @i 
    Set @OutStr = @OutStr + (Case When @j >126 then Char(@j -20) Else Char(@j) end)
    Set @i=@i+1
    End
    Select @OutStr
      

  5.   

    to zosky(欢迎使用银行卡)这个不能加密中文啊!