Pergunta : Função de TSQL HMAC

Eu estou tentando criar uma função de HMAC no SQL de acordo com esta especificação: o rel= " nofollow " do " _blank " " do target= de " http://tools.ietf.org/html/rfc2104 do href= do o /rfc2104

Wikipedia de http://tools.ietf.org/html igualmente tem uma explanação muito boa: o rel= " nofollow " do " _blank " " do target= de " http://en.wikipedia.org/wiki/HMAC do href= do o ki/HMAC

de http://en.wikipedia.org/wi diferentes daquele a fuga vai frio! Eu sou certo que eu não posso ser a primeira pessoa para tentar e fazer isto no SQL??? o

Below é tanto quanto I've começ, mim é perdido totalmente a respeito de onde eu estou indo mal, mas definitivamente não trabalha. Se qualquer um poderia verter alguma luz eu apreciaria realmente;)

--------------------------------------------------------------------------------------------DO
THE DA FUNÇÃO
ASSIM ATÉ AQUI--------------------------------------------------------------------------------------------FUNÇÃO do

ALTER [dbo].



AS
BEGIN
DO
RETURNS VARCHAR DO
(@KEY VARCHAR DO
(MAX),
DO @MESSAGE VARCHAR DO
(MAX)) (MAX)      --PICAR a chave se mais por muito tempo de 16 o characters
SE (LEN (@key) >16) @key AJUSTADO do
=


de HASHBYTES (“md5”, @key)      --acolchoar a chave com 'o 0 se mais curto que 16 o characters
QUANDO @key AJUSTADO de LEN (@key) <16
BEGIN
= @key + '0 '
END

      --preparar o ipad & o
do opod DECLARA @o_key_pad VARCHAR do @ipad VARCHAR (max), o @ipad AJUSTADO do
do
do @opad VARCHAR (max) = “6666666666666666 ' @opad AJUSTADO do
=” \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 'o

DECLARA o @i_key_pad VARCHAR (max), (max), @position AJUSTADO de INT
do @position = @i_key_pad AJUSTADO de 1
= do '' @o_key_pad AJUSTADO
= '' o

      --emendar o ipad & o opod com o key
QUANDO @i_key_pad AJUSTADO do <= 16
BEGIN
do @position = @i_key_pad + CARVÃO ANIMAL (ASCII (SUBSTRING (@ipad, @position, 1)) ^ ASCII (SUBSTRING (@KEY, @POSITION, 1))) @O_KEY_PAD AJUSTADO DO
= @O_KEY_PAD + CARVÃO ANIMAL (ASCII (SUBSTRING (@OPAD, @POSITION, 1)) ^ ASCII (SUBSTRING (@KEY, @POSITION, 1))) @position AJUSTADO do
= @position +
RETURN HASHBYTES de 1
END

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

END


class= do

Resposta : Função de TSQL HMAC

Rachado ele!!! :)
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 A FUNÇÃO [dbo]. [HMAC]
(
		@KEY VARCHAR (MAX),
		@MESSAGE VARCHAR (MAX)
)
RETORNOS VARCHAR (MAX)

COMO
COMEÇAR
	--PICAR a chave se mais por muito tempo de 16 caráteres
	SE (LEN (@KEY) >64)
		AJUSTAR o @key = o HASHBYTES (“md5”, o @key)


	DECLARAR O @I_KEY_PAD VARCHAR (MAX), @O_KEY_PAD VARCHAR (MAX), @POSITION INT
		AJUSTAR o @position = 1
		AJUSTAR o @i_key_pad = ''
		AJUSTAR o @o_key_pad = ''

	--emendar o ipad & o opod com a chave
	QUANDO @position  <>
           
Outras soluções  
 
programming4us programming4us