Difference between revisions of "Hashing Module"
Jump to navigation
Jump to search
(29 intermediate revisions by 2 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== |
− | {| | + | {| width='100%' |
|- | |- | ||
− | | width=' | + | | width='120' | '''Signatures''' |
− | |{{Func| | + | |{{Func|hash:md5|$value as xs:anyAtomicType|xs:base64Binary}}<br /> |
|- | |- | ||
| '''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 xs:string, xs:base64Binary, or xs:hexBinary. |
|- | |- | ||
| '''Examples''' | | '''Examples''' | ||
| | | | ||
− | * {{Code| | + | * {{Code|string(xs:hexBinary(hash:md5("BaseX")))}} returns {{Code|0D65185C9E296311C0A2200179E479A2}}. |
− | * {{Code| | + | * {{Code|string(hash:md5(xs:base64Binary("")))}} returns <code>1B2M2Y8AsgTpgAmY7PhCfg==</code>. |
|} | |} | ||
− | == | + | ==hash:sha1== |
− | {| | + | {| width='100%' |
|- | |- | ||
− | | width=' | + | | width='120' | '''Signatures''' |
− | |{{Func| | + | |{{Func|hash:sha1|$value as xs:anyAtomicType|xs:base64Binary}}<br /> |
|- | |- | ||
| '''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 xs:string, xs:base64Binary, or xs:hexBinary. |
|- | |- | ||
| '''Examples''' | | '''Examples''' | ||
| | | | ||
− | * {{Code| | + | * {{Code|string(xs:hexBinary(hash:sha1("BaseX")))}} returns {{Code|3AD5958F0F27D5AFFDCA2957560F121D0597A4ED}}. |
− | * {{Code| | + | * {{Code|string(hash:sha1(xs:base64Binary("")))}} returns <code>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</code>. |
|} | |} | ||
− | == | + | ==hash:sha256== |
− | {| | + | {| width='100%' |
|- | |- | ||
− | | width=' | + | | width='120' | '''Signatures''' |
− | |{{Func| | + | |{{Func|hash:sha256|$value as xs:anyAtomicType|xs:base64Binary}}<br /> |
|- | |- | ||
| '''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 xs:string, xs:base64Binary, or xs:hexBinary. |
|- | |- | ||
| '''Examples''' | | '''Examples''' | ||
| | | | ||
− | * {{Code| | + | * {{Code|string(xs:hexBinary(hash:sha256("BaseX")))}} returns {{Code|15D570763DEB75D728BB69643392873B835CCCC94A2F1E881909DA47662821A3}}. |
− | * {{Code| | + | * {{Code|string(hash:sha256(xs:base64Binary("")))}} returns <code>47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=</code>. |
|} | |} | ||
− | == | + | ==hash:hash== |
− | {| | + | {| width='100%' |
|- | |- | ||
− | | width=' | + | | width='120' | '''Signatures''' |
− | |{{Func| | + | |{{Func|hash:hash|$value as xs:anyAtomicType, $algorithm as xs:string|xs:base64Binary}}<br /> |
|- | |- | ||
| '''Summary''' | | '''Summary''' | ||
− | |Computes the hash of the given | + | |Computes the hash of the given {{Code|$value}}, using the specified {{Code|$algorithm}}. The specified values may be of type xs:string, xs:base64Binary, or xs:hexBinary.<br />The following three algorihms are supported: {{Code|MD5}}, {{Code|SHA-1}}, and {{Code|SHA-256}}. |
|- | |- | ||
| '''Errors''' | | '''Errors''' | ||
− | |{{Error| | + | |{{Error|algorithm|#Errors}} the specified hashing algorithm is unknown. |
|- | |- | ||
| '''Examples''' | | '''Examples''' | ||
| | | | ||
− | * {{Code| | + | * {{Code|string(xs:hexBinary(hash:hash("", "MD5")))}} returns {{Code|D41D8CD98F00B204E9800998ECF8427E}}. |
− | + | * {{Code|string(hash:hash("", ""))}} raises an error, because no algorithm was specified. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * {{Code| | ||
|} | |} | ||
Line 92: | Line 73: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
− | ! width=" | + | ! width="110"|Code |
− | + | |Description | |
|- | |- | ||
− | |{{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. |
Revision as of 13:23, 24 May 2018
This XQuery Module provides functions that perform different hash operations.
Contents
Conventions
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
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, xs:base64Binary, or xs:hexBinary.
|
Examples |
|
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, xs:base64Binary, or xs:hexBinary.
|
Examples |
|
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, xs:base64Binary, or xs:hexBinary.
|
Examples |
|
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, xs:base64Binary, or xs:hexBinary.The following three algorihms are supported: MD5 , SHA-1 , and SHA-256 .
|
Errors | algorithm : the specified hashing algorithm is unknown.
|
Examples |
|
Errors
Code | Description |
---|---|
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.