This [[Module Library|XQuery Module]] provides functions that perform different hash operations.
=Conventions=
All functions and errors in this module are assigned to the <code><nowiki>http://basex.org/modules/hash</nowiki></code> namespace, which is statically bound to the {{Code|hash}} prefix.<br/>
=Functions=
==hash:md5==
{| width='100%'
|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Func|<pre>hash:md5|( $value as xs:anyAtomicType|) as xs:base64Binary}}<br /pre>|-valign="top"
| '''Summary'''
|Computes the MD5 hash of the given {{Code|$value}}, which may be of type {{Code|xs:string or }}, {{Code|xs:base64Binary.|-| '''Errors'''|}}, or {{ErrorCode|FORG0006|XQuery Errors#Function Errorsxs:hexBinary}} the specified value is neither a string nor a binary item.|-valign="top"
| '''Examples'''
|
* {{Code|string(xs:hexBinary(hash:md5("BaseX")))}} returns {{Code|0D65185C9E296311C0A2200179E479A2}}.* {{Code|string(hash:md5(xs:base64Binary("")))}} returns <code>1B2M2Y8AsgTpgAmY7PhCfg==</code>.
|}
==hash:sha1==
{| width='100%'
|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Func|<pre>hash:sha1|( $value as xs:anyAtomicType|) as xs:base64Binary}}<br /pre>|-valign="top"
| '''Summary'''
|Computes the SHA-1 hash of the given {{Code|$value}}, which may be of type {{Code|xs:string or }}, {{Code|xs:base64Binary.|-| '''Errors'''|}}, or {{ErrorCode|FORG0006|XQuery Errors#Function Errorsxs:hexBinary}} the specified value is neither a string nor a binary item.|-valign="top"
| '''Examples'''
|
* {{Code|string(xs:hexBinary(hash:sha1("BaseX")))}} returns {{Code|3AD5958F0F27D5AFFDCA2957560F121D0597A4ED}}.* {{Code|string(hash:sha1(xs:base64Binary("")))}} returns <code>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</code>.
|}
==hash:sha256==
{| width='100%'
|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Func|<pre>hash:sha256|( $value as xs:anyAtomicType|) as xs:base64Binary}}<br /pre>|-valign="top"
| '''Summary'''
|Computes the SHA-256 hash of the given {{Code|$value}}, which may be of type {{Code|xs:string or }}, {{Code|xs:base64Binary.|-| '''Errors'''|}}, or {{ErrorCode|FORG0006|XQuery Errors#Function Errorsxs:hexBinary}} the specified value is neither a string nor a binary item.|-valign="top"
| '''Examples'''
|
* {{Code|string(xs:hexBinary(hash:sha256("BaseX")))}} returns {{Code|15D570763DEB75D728BB69643392873B835CCCC94A2F1E881909DA47662821A3}}.* {{Code|string(hash:sha256(xs:base64Binary("")))}} returns <code>47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=</code>.
|}
==hash:hash==
{| width='100%'
|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Func|<pre>hash:hash|( $value as xs:anyAtomicType, $algorithm as xs:string|) as xs:base64Binary}}<br /pre>|-valign="top"
| '''Summary'''
|Computes the hash of the given {{Code|$value}}, using the specified {{Code|$algorithm}}. The specified values may be of type {{Code|xs:string }}, {{Code|xs:base64Binary}}, or {{Code|xs:base64BinaryhexBinary}}.<br />The following three algorihms algorithms are supported: {{Code|MD5}}, {{Code|SHA-1}}, and {{Code|SHA-256}}.|-valign="top"
| '''Errors'''
|{{Error|HASH0001algorithm|#Errors}} the specified hashing algorithm is unknown.<br/>{{Error|FORG0006|XQuery Errors#Function Errors}} the specified value is neither a string nor a binary item.|-valign="top"
| '''Examples'''
|
* {{Code|string(xs:hexBinary(hash:md5hash("", "MD5")))}} returns {{Code|D41D8CD98F00B204E9800998ECF8427E}}.* {{Code|string(hash:md5hash("", ""))}} raises an error, because no algorithm was specified.|} =Errors= {| class="wikitable" width="100%"! width="110"|Code|Description|- valign="top"|{{Code|algorithm}}|The specified hash algorithm is unknown.
|}
=Changelog=
;Version 9.0
* Updated: error codes updated; errors now use the module namespace
The module was introduced with Version 7.3.
[[Category:XQuery]]