问题比较菜,请多指教!
1.在BBS的数据库中,用户表operator中保存着用户名和密码等信息,不想让进入数据库的人直接看到密码字段的真实内容,最好是显示为 <Encrypt> ,2.还有我看到数据库master中的表sysxlogins,其中的密码字段显示为<binary>,怎么把密码字符串存为二进制的呢?
谢谢!
1.在BBS的数据库中,用户表operator中保存着用户名和密码等信息,不想让进入数据库的人直接看到密码字段的真实内容,最好是显示为 <Encrypt> ,2.还有我看到数据库master中的表sysxlogins,其中的密码字段显示为<binary>,怎么把密码字符串存为二进制的呢?
谢谢!
第二个想法可以尝试这样实现:
将密码列设为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 /*调用时转换成可以让人理解的字符串*/
可以在此基础上进行加密.