Quelqu'un peut-il me dire pourquoi je reçois des réponses différentes pour ce qui suit:
Voici une fonction très simple utilisée pour returnner la valeur de hachage:
CREATE Function [fn_GetPin](@strText VARCHAR(254)) RETURNS VARCHAR(254) AS BEGIN SET @strText = HashBytes('MD5', @strText); RETURN @strText; END
Voici mon SQL qui renvoie 2 valeurs différentes:
SELECT HashBytes('MD5', '7690') as Hash1 , dbo.fn_GetPin('7690') AS Hash2
Résultats:
Hash1 Hash2 0xC6776F93BC9AFE2E511A1DBD5478362C Æwo“¼šþ.Q½Tx6,
Pour une raison quelconque, la fonction ne returnne pas la même valeur que HASH1. Je ne suis pas sûr pourquoi.
Merci.
METTRE À JOUR:
Réponse acceptée est ci-dessous, je viens d'append (max) au VARBINARY pour returnner la valeur entière. Merci a tous.
CREATE Function [fn_GetPin](@strText VARCHAR(254)) RETURNS VARBINARY(max) AS BEGIN Return HashBytes('MD5', @strText); END
CREATE Function [fn_GetPin](@strText VARCHAR(254)) RETURNS VARBINARY AS BEGIN Return HashBytes('MD5', @strText); END
La fonction devrait renvoyer une valeur varbinary
.
pvg à peu près cloué dessus.
CREATE Function [fn_GetPin](@strText VARCHAR(254)) RETURNS VARBINARY AS BEGIN SET @strText = HashBytes('MD5', @strText); RETURN CAST(@strText as VARBINARY); END