Vraag : Functie TSQL HMAC

Ik probeer om een functie HMAC in SQL volgens deze specificatie tot stand te brengen: http://tools.ietf.org/html /rfc2104

Wikipedia heeft ook een zeer goede verklaring: http://en.wikipedia.org/wi ki/HMAC

buiten dat de sleep gaat koud! Ik ben zeker ik niet kan zijn de eerste persoon om te proberen en dit in SQL???

Below is voor zover ik heb, word ik totaal verloren in verband met waar ik verkeerd ga, maar het werkt niet absoluut. Als iedereen wat licht kon afwerpen zou ik het werkelijk waarderen;)

FUNCTIE
THE AANGEZIEN HET ZICH TOT ZOVER
BEVINDTFUNCTIE

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



AS
BEGIN
      --De sleutel van de KNOEIBOEL als langer dan 16 characters
ALS (LEN (@key) >16) VASTGESTELDE
@key = HASHBYTES („md5“, @key)


      --stootkussen sleutel met '0's als korter dat 16 characters
TERWIJL LEN (@key) <16
VASTGESTELDE BEGIN
@key = @key + '0 '
END

      --TREF IPAD VOORBEREIDINGEN & OPOD VERKLAART
@IPAD (MAXIMUM) VARCHAR, VERKLAART VASTGESTELDE @OPAD VARCHAR (MAXIMUM)

@IPAD = „VASTGESTELDE 6666666666666666 '
@OPAD =“ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ '

@I_KEY_PAD (MAXIMUM) VARCHAR, @O_KEY_PAD (MAXIMUM) VARCHAR, VASTGESTELDE @POSITION VAN @POSITIONINT
= 1
GEPLAATST @I_KEY_PAD = GEPLAATSTE ''
@O_KEY_PAD = ''

      --verbind ipad & opod met key
TERWIJL @position <= 16
BEGIN
@i_key_pad = @i_key_pad + KLUSJE PLAATSTE (ASCII (SUBSTRING (@ipad, @position, 1)) ^ ASCII (SUBSTRING (@KEY, @POSITION, 1)))
PLAATSTE @O_KEY_PAD = @O_KEY_PAD + KLUSJE (ASCII (SUBSTRING (@OPAD, @POSITION, 1)) ^ ASCII (SUBSTRING (@KEY, @POSITION, 1))) /> VASTGESTELDE @position
END


RETURN HASHBYTES („md5“, (@o_key_pad + BEKEERLING ((maximum) VARCHAR, HASHBYTES ('md5'< wbr/>, (@i_key_pad + @message)))))

END


Antwoord : Functie TSQL HMAC

Gebarsten het!!! :)
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:
VERANDER FUNCTIE [dbo]. [HMAC]
(
		@KEY (MAXIMUM) VARCHAR,
		(MAXIMUM) @MESSAGE VARCHAR
)
(MAXIMUM) WINST VARCHAR

ZOALS
BEGIN
	--HAK sleutel als langer dan 16 karakters
	ALS (LEN (@KEY) >64)
		VASTGESTELD @key = HASHBYTES („md5“, @key)


	VERKLAAR @I_KEY_PAD (MAXIMUM) VARCHAR, @O_KEY_PAD (MAXIMUM) VARCHAR, @POSITION INT.
		PLAATS @position = 1
		PLAATS @i_key_pad = ''
		PLAATS @o_key_pad = ''

	--verbind ipad & opod met sleutel
	TERWIJL @position  <>
           
Andere oplossingen  
 
programming4us programming4us