Difference between revisions of "Hashing Module"

From BaseX Documentation
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 10: Line 10:
 
{| width='100%'
 
{| width='100%'
 
|- valign="top"
 
|- valign="top"
| width='120' | '''Signatures'''
+
| width='120' | '''Signature'''
|{{Func|hash:md5|$value as xs:anyAtomicType|xs:base64Binary}}<br />
+
|<pre>hash:md5(
 +
  $value as xs:anyAtomicType
 +
) as xs:base64Binary</pre>
 
|- valign="top"
 
|- valign="top"
 
| '''Summary'''
 
| '''Summary'''
Line 25: Line 27:
 
{| width='100%'
 
{| width='100%'
 
|- valign="top"
 
|- valign="top"
| width='120' | '''Signatures'''
+
| width='120' | '''Signature'''
|{{Func|hash:sha1|$value as xs:anyAtomicType|xs:base64Binary}}<br />
+
|<pre>hash:sha1(
 +
  $value as xs:anyAtomicType
 +
) as xs:base64Binary</pre>
 
|- valign="top"
 
|- valign="top"
 
| '''Summary'''
 
| '''Summary'''
Line 40: Line 44:
 
{| width='100%'
 
{| width='100%'
 
|- valign="top"
 
|- valign="top"
| width='120' | '''Signatures'''
+
| width='120' | '''Signature'''
|{{Func|hash:sha256|$value as xs:anyAtomicType|xs:base64Binary}}<br />
+
|<pre>hash:sha256(
 +
  $value as xs:anyAtomicType
 +
) as xs:base64Binary</pre>
 
|- valign="top"
 
|- valign="top"
 
| '''Summary'''
 
| '''Summary'''
Line 55: Line 61:
 
{| width='100%'
 
{| width='100%'
 
|- valign="top"
 
|- valign="top"
| width='120' | '''Signatures'''
+
| width='120' | '''Signature'''
|{{Func|hash:hash|$value as xs:anyAtomicType, $algorithm as xs:string|xs:base64Binary}}<br />
+
|<pre>hash:hash(
 +
  $value     as xs:anyAtomicType,
 +
  $algorithm as xs:string
 +
) as xs:base64Binary</pre>
 
|- valign="top"
 
|- valign="top"
 
| '''Summary'''
 
| '''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:hexBinary}}.<br />The following three algorithms 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 {{Code|xs:string}}, {{Code|xs:base64Binary}}, or {{Code|xs:hexBinary}}.<br/>The following three algorithms are supported: {{Code|MD5}}, {{Code|SHA-1}}, and {{Code|SHA-256}}.
 
|- valign="top"
 
|- valign="top"
 
| '''Errors'''
 
| '''Errors'''

Latest revision as of 14:30, 9 March 2023

This XQuery Module provides functions that perform different hash operations.

Conventions[edit]

All functions and errors in this module are assigned to the http://basex.org/modules/hash namespace, which is statically bound to the hash prefix.

Functions[edit]

hash:md5[edit]

Signature
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, xs:base64Binary, or xs:hexBinary.
Examples
  • string(xs:hexBinary(hash:md5("BaseX"))) returns 0D65185C9E296311C0A2200179E479A2.
  • string(hash:md5(xs:base64Binary(""))) returns 1B2M2Y8AsgTpgAmY7PhCfg==.

hash:sha1[edit]

Signature
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, xs:base64Binary, or xs:hexBinary.
Examples
  • string(xs:hexBinary(hash:sha1("BaseX"))) returns 3AD5958F0F27D5AFFDCA2957560F121D0597A4ED.
  • string(hash:sha1(xs:base64Binary(""))) returns 2jmj7l5rSw0yVb/vlWAYkK/YBwk=.

hash:sha256[edit]

Signature
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, xs:base64Binary, or xs:hexBinary.
Examples
  • string(xs:hexBinary(hash:sha256("BaseX"))) returns 15D570763DEB75D728BB69643392873B835CCCC94A2F1E881909DA47662821A3.
  • string(hash:sha256(xs:base64Binary(""))) returns 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=.

hash:hash[edit]

Signature
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, xs:base64Binary, or xs:hexBinary.
The following three algorithms are supported: MD5, SHA-1, and SHA-256.
Errors algorithm: the specified hashing algorithm is unknown.
Examples
  • string(xs:hexBinary(hash:hash("", "MD5"))) returns D41D8CD98F00B204E9800998ECF8427E.
  • string(hash:hash("", "")) raises an error, because no algorithm was specified.

Errors[edit]

Code Description
algorithm The specified hash algorithm is unknown.

Changelog[edit]

Version 9.0
  • Updated: error codes updated; errors now use the module namespace

The module was introduced with Version 7.3.