MSSQL MD5, rozdíly mezi MSSQL a MySQL

Článek ze série rozdílů mezi MySQL a MSSQL. Jak na hashovací funkce? Funkce MD5() na MSSQL nenajdete, alespoň ne jak jste zvyklí.


Úvodním článkem MSSQL UPSERT, INSERT INTO ... ON DUPLICATE KEY UPDATE jsem zahájil sérii článků o rozdílech mezi MySQL a MSSQL, které jsou pro mne jako zelenáče v MSSQL nové.

Dnes jsou na řadě hashovací funkce, pokud jste zvyklí na SELECT MD5('text'); tak v MSSQL nic takového nenajdete.

Zkusit to můžete pomocí funkce HashBytes, např. takhle:

  1. SELECT HashBytes('MD5',"testovací řetězec");  // výsledek je však v binární podobě a budeme ho muset převést na hex
  2. md5mssql:Ř<ţ6gţ‰¬˛ ]qJ
  3. bin2hex:d81b0f3cfe36675cfe89acb2205d714a
  4. md5mysql:d81b0f3cfe36675cfe89acb2205d714a

 

komentáře

RSS Komentáře k článku RSS Komentáře   Add to Google
21.05.2009 08:16 | Anonym (Lukáš) | řešení pro MSSQL

Já řeším MD5 výstup s MSSQL takto: RIGHT(master.dbo­.fn_varbintohex­str (HashBytes(‚MD5‘,‚t­estovací řetězec‘)) ,32)

nebo pro zjednodušení práce přímo funkci

CREATE FUNCTION [dbo].[MD5] ( @zdroj varchar(1024) ) RETURNS char(32) AS BEGIN
RETURN RIGHT(master.dbo­.fn_varbintohex­str (HashBytes(‚MD5‘,@z­droj)) ,32) END

Jméno
Název
Text
Lze používat Texy! syntax. Příklad syntaxe: "text odkazu":odkaz, **tučně**, *kurzíva*, `code`. PHP kód uzavírejte do <?php ... ?> a JavaScript do <script> ... </script>