CryptographicHashContent

Description:

Calculates a cryptographic hash value for the flowfile content using the given algorithm and writes it to an output attribute. Please refer to https://csrc.nist.gov/Projects/Hash-Functions/NIST-Policy-on-Hash-Functions for help to decide which algorithm to use.

Tags:

content, hash, sha, blake2, md5, cryptography

Properties:

In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values.

Display NameAPI NameDefault ValueAllowable ValuesDescription
Fail if the content is emptyfail_when_emptyfalse
  • true
  • false
Route to failure if the content is empty. While hashing an empty value is valid, some flows may want to detect empty input.
Hash Algorithmhash_algorithmSHA-256
  • MD2 MD2 (16 byte output) [WARNING -- Cryptographically broken] Cryptographically broken due to collisions
  • MD5 MD5 (16 byte output) [WARNING -- Cryptographically broken] Cryptographically broken due to collisions
  • SHA-1 SHA-1 (20 byte output) [WARNING -- Cryptographically broken] Cryptographically broken due to collisions
  • SHA-224 SHA-224 (28 byte output) SHA-2 family
  • SHA-256 SHA-256 (32 byte output) SHA-2 family
  • SHA-384 SHA-384 (48 byte output) SHA-2 family
  • SHA-512 SHA-512 (64 byte output) SHA-2 family
  • SHA-512/224 SHA-512/224 (28 byte output) SHA-2 using SHA-512 with truncated output
  • SHA-512/256 SHA-512/256 (32 byte output) SHA-2 using SHA-512 with truncated output
  • SHA3-224 SHA3-224 (28 byte output) Keccak-based SHA3 family
  • SHA3-256 SHA3-256 (32 byte output) Keccak-based SHA3 family
  • SHA3-384 SHA3-384 (48 byte output) Keccak-based SHA3 family
  • SHA3-512 SHA3-512 (64 byte output) Keccak-based SHA3 family
  • BLAKE2-160 BLAKE2-160 (20 byte output) Also known as Blake2b
  • BLAKE2-256 BLAKE2-256 (32 byte output) Also known as Blake2b
  • BLAKE2-384 BLAKE2-384 (48 byte output) Also known as Blake2b
  • BLAKE2-512 BLAKE2-512 (64 byte output) Also known as Blake2b
The hash algorithm to use. Note that not all of the algorithms available are recommended for use (some are provided for legacy compatibility). There are many things to consider when picking an algorithm; it is recommended to use the most secure algorithm possible.

Relationships:

NameDescription
successUsed for flowfiles that have a hash value added
failureUsed for flowfiles that have no content if the 'fail on empty' setting is enabled

Reads Attributes:

None specified.

Writes Attributes:

NameDescription
content_<algorithm>This processor adds an attribute whose value is the result of hashing the flowfile content. The name of this attribute is specified by the value of the algorithm, e.g. 'content_SHA-256'.

State management:

This component does not store state.

Restricted:

This component is not restricted.

Input requirement:

This component requires an incoming relationship.

System Resource Considerations:

None specified.