Difference between revisions of "Hashing Module"

From BaseX Documentation
Jump to navigation Jump to search
Line 1: Line 1:
This [[Module Library|XQuery Module]] contains cryptographic hash functions.
 
 
=Conventions=
 
 
All functions in this module are assigned to the {{Code|http://basex.org/modules/hash}} namespace, which is statically bound to the {{Code|hash}} prefix.<br/>
 
All errors are assigned to the {{Code|http://basex.org/errors}} namespace, which is statically bound to the {{Code|bxerr}} prefix.
 
 
 
=Functions=
 
=Functions=
  
Line 15: Line 8:
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Computes the MD5 hash of the given {{Code|$value}}, which may be a string or a binary item (xs:base64Binary, xs:hexBinary).
+
|Computes the MD5 hash of the given {{Code|$value}}, which may be of type xs:string or xs:base64Binary.
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
Line 33: Line 26:
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Computes the SHA-1 hash of the given {{Code|$value}}, which may be a string or a binary item (xs:base64Binary, xs:hexBinary).
+
|Computes the SHA-1 hash of the given {{Code|$value}}, which may be of type xs:string or xs:base64Binary.
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
Line 51: Line 44:
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Computes the SHA-256 hash of the given {{Code|$value}}, which may be a string or a binary item (xs:base64Binary, xs:hexBinary).
+
|Computes the SHA-256 hash of the given {{Code|$value}}, which may be of type xs:string or xs:base64Binary.
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
Line 69: Line 62:
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Computes the hash of the given {{Code|$value}}, using the specified {{Code|$algorithm}}. The specified values may be a string or a binary item (xs:base64Binary, xs:hexBinary)<br />The following three algorihms are supported: {{Code|MD5}}, {{Code|SHA-1}}, and {{Code|SHA-256}}.
+
|Computes the hash of the given {{Code|$value}}, using the specified {{Code|$algorithm}}. The specified values may be of type xs:string or xs:base64Binary.<br />The following three algorihms are supported: {{Code|MD5}}, {{Code|SHA-1}}, and {{Code|SHA-256}}.
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
Line 79: Line 72:
 
* {{Code|hash:md5("", "")}} raises an error.
 
* {{Code|hash:md5("", "")}} raises an error.
 
|}
 
|}
 
=Errors=
 
 
{| class="wikitable" width="100%"
 
! width="5%"|Code
 
! width="95%"|Description
 
|-
 
|{{Code|HASH0001}}
 
|The specified hashing algorithm is unknown.
 
|}
 
 
=Changelog=
 
 
This module was introduced with Version 7.3.
 
 
[[Category:XQuery]]
 

Revision as of 03:30, 17 June 2012

Functions

hash:md5

Signatures hash:md5($value as xs:anyAtomicType) as xs:base64Binary
Summary Computes the MD5 hash of the given $value, which may be of type xs:string or xs:base64Binary.
Errors FORG0006: the specified value is neither a string nor a binary item.
Examples
  • xs:hexBinary(hash:md5("BaseX")) returns 0D65185C9E296311C0A2200179E479A2.
  • hash:md5(xs:base64Binary("")) returns {{{1}}}.

hash:sha1

Signatures hash:sha1($value as xs:anyAtomicType) as xs:base64Binary
Summary Computes the SHA-1 hash of the given $value, which may be of type xs:string or xs:base64Binary.
Errors FORG0006: the specified value is neither a string nor a binary item.
Examples
  • xs:hexBinary(hash:sha1("BaseX")) returns 3AD5958F0F27D5AFFDCA2957560F121D0597A4ED.
  • hash:sha1(xs:base64Binary("")) returns {{{1}}}.

hash:sha256

Signatures hash:sha256($value as xs:anyAtomicType) as xs:base64Binary
Summary Computes the SHA-256 hash of the given $value, which may be of type xs:string or xs:base64Binary.
Errors FORG0006: the specified value is neither a string nor a binary item.
Examples
  • xs:hexBinary(hash:sha256("BaseX")) returns 15D570763DEB75D728BB69643392873B835CCCC94A2F1E881909DA47662821A3.
  • hash:sha256(xs:base64Binary("")) returns {{{1}}}.

hash:hash

Signatures hash:hash($value as xs:anyAtomicType, $algorithm as xs:string) as xs:base64Binary
Summary Computes the hash of the given $value, using the specified $algorithm. The specified values may be of type xs:string or xs:base64Binary.
The following three algorihms are supported: MD5, SHA-1, and SHA-256.
Errors HASH0001: the specified hashing algorithm is unknown.
FORG0006: the specified value is neither a string nor a binary item.
Examples
  • xs:hexBinary(hash:md5("", "MD5")) returns D41D8CD98F00B204E9800998ECF8427E.
  • hash:md5("", "") raises an error.