Difference between revisions of "Hashing Module"
Jump to navigation
Jump to search
| (28 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
| − | This [[Module Library|XQuery Module]] | + | This [[Module Library|XQuery Module]] provides functions that perform different hash operations. |
=Conventions= | =Conventions= | ||
| − | All functions in this module are assigned to the | + | 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= | =Functions= | ||
==hash:md5== | ==hash:md5== | ||
| − | {| | + | {| width='100%' |
| − | |- | + | |- valign="top" |
| − | | width=' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>hash:md5( |
| − | |- | + | $value as xs:anyAtomicType |
| + | ) as xs:base64Binary</pre> | ||
| + | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Computes the MD5 hash of the given {{Code|$value}}, which may be | + | |Computes the MD5 hash of the given {{Code|$value}}, which may be of type {{Code|xs:string}}, {{Code|xs:base64Binary}}, or {{Code|xs:hexBinary}}. |
| − | + | |- valign="top" | |
| − | |||
| − | |||
| − | |- | ||
| '''Examples''' | | '''Examples''' | ||
| | | | ||
| − | * {{Code|xs:hexBinary(hash:md5("BaseX"))}} returns {{Code|0D65185C9E296311C0A2200179E479A2}}. | + | * {{Code|string(xs:hexBinary(hash:md5("BaseX")))}} returns {{Code|0D65185C9E296311C0A2200179E479A2}}. |
| − | * {{Code|hash:md5(xs:base64Binary(""))}} returns | + | * {{Code|string(hash:md5(xs:base64Binary("")))}} returns <code>1B2M2Y8AsgTpgAmY7PhCfg==</code>. |
|} | |} | ||
==hash:sha1== | ==hash:sha1== | ||
| − | {| | + | {| width='100%' |
| − | |- | + | |- valign="top" |
| − | | width=' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>hash:sha1( |
| − | |- | + | $value as xs:anyAtomicType |
| + | ) as xs:base64Binary</pre> | ||
| + | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Computes the SHA-1 hash of the given {{Code|$value}}, which may be | + | |Computes the SHA-1 hash of the given {{Code|$value}}, which may be of type {{Code|xs:string}}, {{Code|xs:base64Binary}}, or {{Code|xs:hexBinary}}. |
| − | + | |- valign="top" | |
| − | |||
| − | |||
| − | |- | ||
| '''Examples''' | | '''Examples''' | ||
| | | | ||
| − | * {{Code|xs:hexBinary(hash:sha1("BaseX"))}} returns {{Code|3AD5958F0F27D5AFFDCA2957560F121D0597A4ED}}. | + | * {{Code|string(xs:hexBinary(hash:sha1("BaseX")))}} returns {{Code|3AD5958F0F27D5AFFDCA2957560F121D0597A4ED}}. |
| − | * {{Code|hash:sha1(xs:base64Binary(""))}} returns | + | * {{Code|string(hash:sha1(xs:base64Binary("")))}} returns <code>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</code>. |
|} | |} | ||
==hash:sha256== | ==hash:sha256== | ||
| − | {| | + | {| width='100%' |
| − | |- | + | |- valign="top" |
| − | | width=' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>hash:sha256( |
| − | |- | + | $value as xs:anyAtomicType |
| + | ) as xs:base64Binary</pre> | ||
| + | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Computes the SHA-256 hash of the given {{Code|$value}}, which may be | + | |Computes the SHA-256 hash of the given {{Code|$value}}, which may be of type {{Code|xs:string}}, {{Code|xs:base64Binary}}, or {{Code|xs:hexBinary}}. |
| − | + | |- valign="top" | |
| − | |||
| − | |||
| − | |- | ||
| '''Examples''' | | '''Examples''' | ||
| | | | ||
| − | * {{Code|xs:hexBinary(hash:sha256("BaseX"))}} returns {{Code|15D570763DEB75D728BB69643392873B835CCCC94A2F1E881909DA47662821A3}}. | + | * {{Code|string(xs:hexBinary(hash:sha256("BaseX")))}} returns {{Code|15D570763DEB75D728BB69643392873B835CCCC94A2F1E881909DA47662821A3}}. |
| − | * {{Code|hash:sha256(xs:base64Binary(""))}} returns | + | * {{Code|string(hash:sha256(xs:base64Binary("")))}} returns <code>47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=</code>. |
|} | |} | ||
==hash:hash== | ==hash:hash== | ||
| − | {| | + | {| width='100%' |
| − | |- | + | |- valign="top" |
| − | | width=' | + | | width='120' | '''Signature''' |
| − | | | + | |<pre>hash:hash( |
| − | |- | + | $value as xs:anyAtomicType, |
| + | $algorithm as xs:string | ||
| + | ) as xs:base64Binary</pre> | ||
| + | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Computes the hash of the given {{Code|$value}}, using the specified {{Code|$algorithm}}. The specified values may be | + | |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" |
| '''Errors''' | | '''Errors''' | ||
| − | |{{Error| | + | |{{Error|algorithm|#Errors}} the specified hashing algorithm is unknown. |
| − | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
| − | * {{Code|xs:hexBinary(hash: | + | * {{Code|string(xs:hexBinary(hash:hash("", "MD5")))}} returns {{Code|D41D8CD98F00B204E9800998ECF8427E}}. |
| − | * {{Code|hash: | + | * {{Code|string(hash:hash("", ""))}} raises an error, because no algorithm was specified. |
|} | |} | ||
| Line 83: | Line 82: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
| − | ! width=" | + | ! width="110"|Code |
| − | + | |Description | |
| − | |- | + | |- valign="top" |
| − | |{{Code| | + | |{{Code|algorithm}} |
| − | |The specified | + | |The specified hash algorithm is unknown. |
|} | |} | ||
=Changelog= | =Changelog= | ||
| − | + | ;Version 9.0 | |
| + | |||
| + | * Updated: error codes updated; errors now use the module namespace | ||
| − | + | The module was introduced with Version 7.3. | |
Latest revision as of 15:30, 9 March 2023
This XQuery Module provides functions that perform different hash operations.
Contents
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 |
|
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 |
|
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 |
|
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 |
|
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.