Cuestión : Función de TSQL HMAC

Estoy intentando crear una función de HMAC en el SQL según esta especificación: el rel= " nofollow " del " _blank " del target= de " http://tools.ietf.org/html/rfc2104 " del href= del el /rfc2104

Wikipedia de http://tools.ietf.org/html también tiene una explicación muy buena: ¡el rel= " nofollow " del " _blank " del target= de " http://en.wikipedia.org/wiki/HMAC " del href= del el ki/HMAC

de http://en.wikipedia.org/wi con excepción de ése el rastro va frío! ¿Estoy seguro que no puedo ser la primera persona para intentar y para hacer esto en el SQL??? el

Below es por lo que tengo, yo se pierde total en cuanto a donde estoy saliendo mal, pero no trabaja definitivamente. Si cualquier persona podría verter una cierta luz apreciaría realmente;)

--------------------------------------------------------------------------------------------DEL
THE DE LA FUNCIÓN
TAL Y COMO ESTÁN LAS COSAS HASTA EL MOMENTO--------------------------------------------------------------------------------------------FUNCIÓN del

ALTER [dbo].



AS
BEGIN
DEL
RETURNS VARCHAR (MAX) DEL
(@KEY VARCHAR (MAX) DEL
,
DEL @MESSAGE VARCHAR (MAX) DEL
)      --DESMENUZAR la llave si más de largo de 16 el characters
SI (LEN (@key) >16) @key DETERMINADO del
= el


de HASHBYTES (“md5”, @key)      --rellenar la llave con '0 si es más corto que 16 el characters
MIENTRAS QUE @key DETERMINADO de LEN (@key) <16
BEGIN
= @key + '0 '
END

      --preparar el ipad y el
del opod DECLARA @o_key_pad VARCHAR (max), @position DETERMINADO de INT
del @position = @i_key_pad DETERMINADO del @ipad VARCHAR (max), el @ipad DETERMINADO del
del
del @opad VARCHAR (max) = “6666666666666666 ' @opad DETERMINADO del
=” \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 'el

DECLARA el @i_key_pad VARCHAR (max), de 1
= '' @o_key_pad DETERMINADO del
= '' el

      --empalmar el ipad y el opod con el key
MIENTRAS QUE @i_key_pad DETERMINADO del <= 16
BEGIN
del @position = @i_key_pad + el CARBÓN DE LEÑA (ASCII el ^ ASCII (SUBSECUENCIA (@key, el @position (de la SUBSECUENCIA (@ipad, @position, 1)), 1))) @O_KEY_PAD DETERMINADO DEL
= @O_KEY_PAD + CARBÓN DE LEÑA (ASCII ^ ASCII (SUBSECUENCIA (@KEY, @POSITION (DE LA SUBSECUENCIA (@OPAD, @POSITION, 1)), 1))) @position DETERMINADO del
= @position +
RETURN HASHBYTES (“md5” de 1
END

, (@o_key_pad + CONVERTIDO (VARCHAR (máximo), HASHBYTES ('wbr/> de md5'<, (@i_key_pad + @message)))))

END


class= del

Respuesta : Función de TSQL HMAC

¡Agrietado él!!! :)
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:
ALTERAR LA FUNCIÓN [dbo]. [HMAC]
(
		@KEY VARCHAR (MAX),
		@MESSAGE VARCHAR (MAX)
)
VUELTAS VARCHAR (MAX)

COMO
COMENZAR
	--DESMENUZAR la llave si más de largo de 16 carácteres
	SI (LEN (@KEY) >64)
		FIJAR el @key = HASHBYTES (“md5”, el @key)


	DECLARAR EL @I_KEY_PAD VARCHAR (MAX), @O_KEY_PAD VARCHAR (MAX), @POSITION INTERNACIONAL
		FIJAR el @position = 1
		FIJAR el @i_key_pad = ''
		FIJAR el @o_key_pad = ''

	--empalmar el ipad y el opod con llave
	MIENTRAS QUE @position  <>
           
Otras soluciones  
 
programming4us programming4us