Fråga : TSQL HMAC fungerar

Pröva förmiddag I att skapa en HMAC fungerar i SQL enligt denna specifikation: rel= " nofollow " " för _blank " för http://tools.ietf.org/html /rfc2104

Wikipedia har också en mycket bra förklaring: rel= " nofollow " " för _blank " för http://en.wikipedia.org/wi ki/HMAC

Other än den slingan går förkylning! Förmiddag I sure jag kan inte vara det första personförsök och göra detta i SQL???

Below är så avlägsen, som I've fick, I-förmiddagen som totalt är borttappad om var I-förmiddagen som orätt går, utan den inte fungerar bestämt. Om någon kunde utgjuta något lätt, jag skulle uppskattar egentligen det;),

--------------------------------------------------------------------------------------------
THE FUNGERAR SOM DEN STÅR THUS FAR
--------------------------------------------------------------------------------------------

ALTER FUNGERAR [dboen].



AS
BEGIN
FÖR
RETURNS VARCHAR (MAX) FÖR
(@KEYEN VARCHAR (MAX) FÖR
,
FÖR @MESSAGE VARCHAR (MAX) FÖR
)      --Nyckel- PÖLSA om longer än 16 characters
OM (LEN (@keyen) >16) FASTSTÄLLD @key för
=


för HASHBYTES (”md5”, @key)      --vaddera nyckel- med '0, om kortare som 16 characters
FÖRDRIVER FASTSTÄLLD @key för LEN (@keyen) <16
BEGIN
= @key + '0 '
END

      --förbered ipad, & opod
FÖRKLARAR @o_key_pad VARCHAR (max), @positionINT
den FASTSTÄLLDA @positionen = FASTSTÄLLD @i_key_pad för @ipad VARCHAR (max), @ipad för
för
för @opad VARCHAR (max) FASTSTÄLLD = ”6666666666666666 ' FASTSTÄLLD @opad för
=” \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ '

FÖRKLARAR @i_key_pad VARCHAR (max), för 1
= '' FASTSTÄLLD @o_key_pad för
= ''

      --splitsa ipad & opod med för STUND@positionen för key
@i_key_pad för <= 16
BEGIN
FASTSTÄLLD = @i_key_pad + RÖDINGEN (ASCII (SUBSTRINGEN (@ipad, @position, 1)) ^ ASCII (SUBSTRINGEN (@KEY, @POSITION, 1))) FASTSTÄLLD @O_KEY_PAD FÖR
= @O_KEY_PAD + RÖDING (ASCII (SUBSTRINGEN (@OPAD, @POSITION, 1)) ^ ASCII (SUBSTRINGEN (@KEY, @POSITION, 1))) FASTSTÄLLD @position för
= @position +
RETURN HASHBYTES (”md5” för 1
END

, (@o_key_pad + OMVÄNDEN ((max) VARCHAR, HASHBYTES ('md5'<-wbr/>, (@i_key_pad + @messagen)))))

END


" klar "

Svar : TSQL HMAC fungerar

Knäckt det!!! :)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
FÖRÄNDRA SIG FUNGERAR [dboen]. [HMAC]
(
		@KEY VARCHAR (MAX),
		@MESSAGE VARCHAR (MAX)
)
RETUR VARCHAR (MAX)

SOM
BÖRJA
	--Nyckel- PÖLSA om longer än 16 tecken
	OM (LEN (@KEYEN) >64)
		FASTSTÄLLD @key = HASHBYTES (”md5”, @key)


	FÖRKLARA @I_KEY_PAD VARCHAR (MAX), @O_KEY_PAD VARCHAR (MAX), @POSITIONEN INT
		FASTSTÄLLD @position = 1
		FASTSTÄLLD @i_key_pad = '',
		FASTSTÄLLD @o_key_pad = '',

	--splitsipad & opod med nyckel-
	STUND@position  <>
           
Andra lösningar  
 
programming4us programming4us