USP_CLIENTUSERSCIPHERHISTORY_LOOKUP
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CLIENTUSERSID | int | IN | |
@PASSWORD | nvarchar(255) | IN |
Definition
Copy
CREATE procedure dbo.USP_CLIENTUSERSCIPHERHISTORY_LOOKUP
(
@CLIENTUSERSID int,
@PASSWORD nvarchar(255)
)
as begin
--Migrating password history cipher for new salted password
exec dbo.USP_GET_KEY_ACCESS;
declare @CHANGEAGENTID? uniqueidentifier;
?? exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
update CUCH set CUCH.CIPHER = dbo.[UFN_HASHBYTES_GET](coalesce(convert(varchar(255),DECRYPTBYKEY(CUCH.CIPHER)), '')) ,
CUCH.CHANGEDBYID = @CHANGEAGENTID,???????????????????????
??????????????????????? CUCH.datechanged=GETDATE()
from dbo.CLIENTUSERSCIPHERHISTORY CUCH where CUCH.CLIENTUSERSID =@CLIENTUSERSID and CUCH.CIPHER not like '$2a$%' ;
exec dbo.USP_CLOSE_KEY_ACCESS;
declare @ID int;
declare @ISALEARDYUSED bit = 0;
declare @CIPHER nvarchar(255);
declare @SALTCIPHERTABLE table(ID int Identity(1,1), CIPHER nvarchar(255))
insert into @SALTCIPHERTABLE ( CIPHER)
select CIPHER from dbo.[CLIENTUSERSCIPHERHISTORY] where CLIENTUSERSID = @CLIENTUSERSID
while exists(select * from @SALTCIPHERTABLE)
begin
select top 1 @ID = ID from @SALTCIPHERTABLE
select @CIPHER = CIPHER from @SALTCIPHERTABLE where ID = @ID
exec @ISALEARDYUSED = UFN_CIPHER_MATCH @PASSWORD , @CIPHER
if @ISALEARDYUSED=1
break;
delete from @SALTCIPHERTABLE Where ID = @ID
set @CIPHER = null
end
if(@ISALEARDYUSED = 1)
select 1
else
select 0;
end