Pytanie : TSQL HMAC funkcja

I próbować HMAC funkcja w SQL według ten specyfikacja: http://tools.ietf.org/html /rfc2104

Wikipedia także mieć bardzo dobry wyjaśnienie: http://en.wikipedia.org/wi ki/HMAC

Other ten the ślad iść zimno! I być pewny I móc the pierwszy osoba i to w SQL???

Below być tak daleko jak I've dostać, I kompletnie gubić jeśli chodzi dokąd I iść źle, ale ono zdecydowanie pracować. Jeżeli ono móc niektóre światło I naprawdę doceniać ono;)

--------------------------------------------------------------------------------------------
THE FUNKCJA JAKO ONO STAĆ TAK FAR
--------------------------------------------------------------------------------------------

ALTER FUNKCJA [dbo]. [HMAC]
(
@KEY VARCHAR (MAX),
@MESSAGE VARCHAR (MAX)
)
RETURNS VARCHAR (MAX)



AS
BEGIN
      --HASH klucz jeżeli dłuższy niż 16 characters
JEŻELI (LEN (@key) >16)
USTALONY @key = HASHBYTES ("md5", @key)


      --mościć klucz z '(0) jeżeli krótki który 16 characters
PODCZAS GDY LEN (@key) <16
BEGIN
USTALONY @key = @key + '(0) '
END

      --przygotowywać ipad & opod
OZNAJMIAĆ @ipad VARCHAR (MAX), @opad VARCHAR (MAX)

USTALONY @ipad = "6666666666666666 '
USTALONY @opad =" \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ '

OZNAJMIAĆ @i_key_pad VARCHAR (MAX), @o_key_pad VARCHAR (MAX), @position INT
USTALONY @position = 1
USTALONY @i_key_pad = ''
USTALONY @o_key_pad = ''

      --splice ipad & opod z key
PODCZAS GDY @position <= 16
BEGIN
USTALONY @i_key_pad = @i_key_pad + PRZYPALAĆ (ASCII (SUBSTRING (@ipad, @position, 1)) ^ ASCII (SUBSTRING (@key, @position, 1)))
USTALONY @O_KEY_PAD = @O_KEY_PAD + PRZYPALAĆ (ASCII (SUBSTRING (@OPAD, @POSITION, 1)) ^ ASCII (SUBSTRING (@KEY, @POSITION, 1)))
USTALONY @position = @position + 1
END


RETURN HASHBYTES ("md5", (@o_key_pad + KONWERTYTA (VARCHAR (ustalony), HASHBYTES ('md5'< wbr/>, (@i_key_pad + @message)))))

END


Odpowiedź : TSQL HMAC funkcja

Krakingowy ono!!! :)
(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:
ZMIENIAĆ FUNKCJA [dbo]. [HMAC]
(
		@KEY VARCHAR (MAX),
		@MESSAGE VARCHAR (MAX)
)
POWRÓT VARCHAR (MAX)


ZACZYNAĆ
	--HASH klucz jeżeli długi niż 16 charakter
	JEŻELI (LEN (@KEY) >64)
		USTAWIAĆ @key = HASHBYTES ("md5", @key)


	OZNAJMIAĆ @I_KEY_PAD VARCHAR (MAX), @O_KEY_PAD VARCHAR (MAX), @POSITION INT
		USTAWIAĆ @position = (1)
		USTAWIAĆ @i_key_pad = ''
		USTAWIAĆ @o_key_pad = ''

	--splice ipad & opod z klucz
	PODCZAS GDY @position  <>
           
Inne rozwiązania  
 
programming4us programming4us