问题比较菜,请多指教!
1.在BBS的数据库中,用户表operator中保存着用户名和密码等信息,不想让进入数据库的人直接看到密码字段的真实内容,最好是显示为 <Encrypt> ,2.还有我看到数据库master中的表sysxlogins,其中的密码字段显示为<binary>,怎么把密码字符串存为二进制的呢?
谢谢!

解决方案 »

  1.   

    不知道该怎么显示为 <Encrypt>.
    第二个想法可以尝试这样实现:
    将密码列设为varbinary类型,保存时将nvarchar类型的密码使用cast()函数转换为varbinary类型保存.调用时再使用cast()函数转换回nvarchar类型.
    ----创建测试用临时表变量
    declare @t table(p varbinary(10))
    ----插入测试的"密码"
    declare @pass1 nvarchar(10)
    declare @pass2 nvarchar(10)
    declare @pass3 nvarchar(10)
    set @pass1 = N'abc'
    set @pass2 = N'def'
    set @pass3 = N'xyz'
    insert into @t 
    select cast(@pass1 as varbinary(10)) union all
    select cast(@pass2 as varbinary(10)) union all
    select cast(@pass3 as varbinary(10)) 
    ----比较转换前后不同之处
    select p from @t
    select cast(p as nvarchar(10)) as p from @t   /*调用时转换成可以让人理解的字符串*/
    可以在此基础上进行加密.