English 中文(简体)
2005年ql服务器——在插入时触发密码
原标题:sql server 2005 - trigger to hash password at insertion
  • 时间:2009-09-04 19:28:51
  •  标签:

怎样才能创造触发因素,在我桌上的任何插入中,[用户]将自动改变其[密码]领域的内容,使其达到MD5。

Ps:我不想在客户方面这样做。

最佳回答

2005年5月24日,日内瓦

仅用你密码左右的传译功能向民主党和INSERT发射触发器,而且你避免了隐形文字密码。 更好的是:撰写一份储存程序,用它来更新密码。 (这避免了触发器的溢价,除非别无其他办法,否则我就避免了这种 overhead。)

我仅举一个例子:

create table TestTrigger2 (
TestTriggerID int not null identity(1,1),
Hashed binary(50),
PasswordProxy nvarchar(50)
)

--select HashBytes( MD5 , N This string )

create trigger HashPass2 on TestTrigger2
instead of insert
as 
begin
  insert into TestTrigger2 (Hashed)
    select HashBytes( MD5 ,  @!98ABc +PasswordProxy) from inserted
end

insert into TestTrigger2
(PasswordProxy)
values
( My password  )

select *
from TestTrigger2

当你看看最后询问的结果时,你会注意到,密码Proxy是NUL(它只是为了提供意见而做了铺设),而哈希德的数值则很高。 排在“口号”之前的垃圾是一种盐类,可避免上文提及的“雨量”攻击(这将使你的密码与仅仅洗刷基体有所不同)。 更长的时间和你自己的创造。

问题回答

您可使用INSTEAD OF INSERT/code>。 它用你对插入的一栏中的一栏中的一种MD5的h加以定义,取代缺省代码

我可能会对你的问题读得太大,但我认为,你无国界协会会做一些客户。 因此:

唯一一个密码应当放在清晰的文字上,是用户类型。 进行加密,将电线上发送,储存起来加密,并对电线进行对比。 在这一链条中,任何一点都不能是可调取的密码。

如果你在书写时要加密密码,那么,在你试图在晚些时候记录时,你会怎样加以核对?

You can use the HashBytes method. Not sure if this is available in sql server versions before 2008. select HashBytes( MD5 , THIS IS MY PASSWORD )





相关问题