Skip to content

Enum: CryptographicHashFunction

Algorithms that take an input and return a fixed-size string (hash value).

Used for verifying data integrity and creating digital signatures.

Based on PREMIS cryptographic hash functions vocabulary.

__

URI: valuesets:CryptographicHashFunction

Permissible Values

Value Title Meaning Description Exact Mappings Output Bits Security Level
ADLER_32 Adler-32 premis:cryptographicHashFunctions/adl A checksum algorithm developed by Mark Adler. Faster than CRC32
but with weaker error detection. Used in zlib compression.
spdx:checksumAlgorithm_adler32 32 non-cryptographic
CRC32 CRC32 premis:cryptographicHashFunctions/crc Cyclic Redundancy Check with 32-bit output. Used for error detection
in network transmissions and storage. Not cryptographically secure.
32 non-cryptographic
HAVAL HAVAL premis:cryptographicHashFunctions/hav A cryptographic hash function that can produce hash values of
128, 160, 192, 224, or 256 bits. Variable number of rounds.
variable deprecated
MD2 MD2 premis:cryptographicHashFunctions/md2 Message Digest 2 algorithm producing a 128-bit hash value.
Designed for 8-bit computers. Considered cryptographically broken.
spdx:checksumAlgorithm_md2 128 broken
MD4 MD4 Message Digest 4 algorithm producing a 128-bit hash value.
Predecessor to MD5. Considered cryptographically broken.
spdx:checksumAlgorithm_md4 128 broken
MD5 MD5 premis:cryptographicHashFunctions/md5 Message Digest 5 algorithm producing a 128-bit hash value.
Widely used but vulnerable to collision attacks. Acceptable
for non-security integrity checks only.
spdx:checksumAlgorithm_md5 128 weak
MD6 MD6 Message Digest 6 algorithm with variable output size.
Designed as a candidate for SHA-3 but not selected.
spdx:checksumAlgorithm_md6 variable adequate
SHA_1 SHA-1 premis:cryptographicHashFunctions/sha1 Secure Hash Algorithm 1 producing a 160-bit hash value.
Deprecated for security applications due to collision vulnerabilities.
Still acceptable for integrity verification in some contexts.
spdx:checksumAlgorithm_sha1 160 weak
SHA_224 SHA-224 SHA-2 variant producing a 224-bit hash value.
Truncated version of SHA-256.
spdx:checksumAlgorithm_sha224 224 secure
SHA_256 SHA-256 premis:cryptographicHashFunctions/sha256 SHA-2 variant producing a 256-bit hash value.
Widely used and considered secure for most applications.
Recommended for digital preservation.
spdx:checksumAlgorithm_sha256 256 secure
SHA_384 SHA-384 premis:cryptographicHashFunctions/sha384 SHA-2 variant producing a 384-bit hash value.
Truncated version of SHA-512.
spdx:checksumAlgorithm_sha384 384 secure
SHA_512 SHA-512 premis:cryptographicHashFunctions/sha512 SHA-2 variant producing a 512-bit hash value.
Highest security level in the SHA-2 family.
spdx:checksumAlgorithm_sha512 512 secure
SHA3_224 SHA3-224 SHA-3 variant producing a 224-bit hash value.
Based on the Keccak algorithm.
spdx:checksumAlgorithm_sha3_224 224 secure
SHA3_256 SHA3-256 SHA-3 variant producing a 256-bit hash value.
Based on the Keccak algorithm. Provides defense against
length extension attacks.
spdx:checksumAlgorithm_sha3_256 256 secure
SHA3_384 SHA3-384 SHA-3 variant producing a 384-bit hash value.
Based on the Keccak algorithm.
spdx:checksumAlgorithm_sha3_384 384 secure
SHA3_512 SHA3-512 SHA-3 variant producing a 512-bit hash value.
Based on the Keccak algorithm.
spdx:checksumAlgorithm_sha3_512 512 secure
BLAKE2B_256 BLAKE2b-256 BLAKE2b variant producing a 256-bit hash value.
Faster than MD5 and SHA-1 while being more secure.
spdx:checksumAlgorithm_blake2b256 256 secure
BLAKE2B_384 BLAKE2b-384 BLAKE2b variant producing a 384-bit hash value.
spdx:checksumAlgorithm_blake2b384 384 secure
BLAKE2B_512 BLAKE2b-512 BLAKE2b variant producing a 512-bit hash value.
Optimized for 64-bit platforms.
spdx:checksumAlgorithm_blake2b512 512 secure
BLAKE3 BLAKE3 Latest BLAKE variant, extremely fast with 256-bit output.
Supports parallelization and incremental hashing.
spdx:checksumAlgorithm_blake3 256 secure
TIGER Tiger premis:cryptographicHashFunctions/tig A cryptographic hash function designed for 64-bit platforms.
Produces a 192-bit hash value.
192 adequate
WHIRLPOOL Whirlpool premis:cryptographicHashFunctions/whi A cryptographic hash function producing a 512-bit hash value.
Based on a modified AES block cipher.
512 secure
UNKNOWN premis:cryptographicHashFunctions/unk The hash algorithm is not known or not specified.

Slots

Name Description
hash_algorithm The cryptographic hash algorithm used for fixity verification

See Also

Identifier and Mapping Information

Schema Source

  • from schema: https://w3id.org/linkml/valuesets

LinkML Source

name: CryptographicHashFunction
instantiates:
- valuesets_meta:ValueSetEnumDefinition
description: 'Algorithms that take an input and return a fixed-size string (hash value).

  Used for verifying data integrity and creating digital signatures.

  Based on PREMIS cryptographic hash functions vocabulary.

  '
title: Cryptographic Hash Function
from_schema: https://w3id.org/linkml/valuesets
see_also:
- https://id.loc.gov/vocabulary/preservation/cryptographicHashFunctions.html
- https://spdx.github.io/spdx-spec/v2.3/file-information/#89-file-checksum-field
contributors:
- orcid:0000-0002-6601-2165
- https://github.com/anthropics/claude-code
status: DRAFT
rank: 1000
permissible_values:
  ADLER_32:
    text: ADLER_32
    description: 'A checksum algorithm developed by Mark Adler. Faster than CRC32

      but with weaker error detection. Used in zlib compression.

      '
    meaning: premis:cryptographicHashFunctions/adl
    annotations:
      output_bits:
        tag: output_bits
        value: 32
      security_level:
        tag: security_level
        value: non-cryptographic
    title: Adler-32
    exact_mappings:
    - spdx:checksumAlgorithm_adler32
  CRC32:
    text: CRC32
    description: 'Cyclic Redundancy Check with 32-bit output. Used for error detection

      in network transmissions and storage. Not cryptographically secure.

      '
    meaning: premis:cryptographicHashFunctions/crc
    annotations:
      output_bits:
        tag: output_bits
        value: 32
      security_level:
        tag: security_level
        value: non-cryptographic
    title: CRC32
  HAVAL:
    text: HAVAL
    description: 'A cryptographic hash function that can produce hash values of

      128, 160, 192, 224, or 256 bits. Variable number of rounds.

      '
    meaning: premis:cryptographicHashFunctions/hav
    annotations:
      output_bits:
        tag: output_bits
        value: variable
      security_level:
        tag: security_level
        value: deprecated
    title: HAVAL
  MD2:
    text: MD2
    description: 'Message Digest 2 algorithm producing a 128-bit hash value.

      Designed for 8-bit computers. Considered cryptographically broken.

      '
    meaning: premis:cryptographicHashFunctions/md2
    annotations:
      output_bits:
        tag: output_bits
        value: 128
      security_level:
        tag: security_level
        value: broken
    title: MD2
    exact_mappings:
    - spdx:checksumAlgorithm_md2
  MD4:
    text: MD4
    description: 'Message Digest 4 algorithm producing a 128-bit hash value.

      Predecessor to MD5. Considered cryptographically broken.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: 128
      security_level:
        tag: security_level
        value: broken
    title: MD4
    exact_mappings:
    - spdx:checksumAlgorithm_md4
  MD5:
    text: MD5
    description: 'Message Digest 5 algorithm producing a 128-bit hash value.

      Widely used but vulnerable to collision attacks. Acceptable

      for non-security integrity checks only.

      '
    meaning: premis:cryptographicHashFunctions/md5
    annotations:
      output_bits:
        tag: output_bits
        value: 128
      security_level:
        tag: security_level
        value: weak
    title: MD5
    exact_mappings:
    - spdx:checksumAlgorithm_md5
  MD6:
    text: MD6
    description: 'Message Digest 6 algorithm with variable output size.

      Designed as a candidate for SHA-3 but not selected.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: variable
      security_level:
        tag: security_level
        value: adequate
    title: MD6
    exact_mappings:
    - spdx:checksumAlgorithm_md6
  SHA_1:
    text: SHA_1
    description: 'Secure Hash Algorithm 1 producing a 160-bit hash value.

      Deprecated for security applications due to collision vulnerabilities.

      Still acceptable for integrity verification in some contexts.

      '
    meaning: premis:cryptographicHashFunctions/sha1
    annotations:
      output_bits:
        tag: output_bits
        value: 160
      security_level:
        tag: security_level
        value: weak
    title: SHA-1
    aliases:
    - SHA1
    exact_mappings:
    - spdx:checksumAlgorithm_sha1
  SHA_224:
    text: SHA_224
    description: 'SHA-2 variant producing a 224-bit hash value.

      Truncated version of SHA-256.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: 224
      security_level:
        tag: security_level
        value: secure
    title: SHA-224
    aliases:
    - SHA224
    exact_mappings:
    - spdx:checksumAlgorithm_sha224
  SHA_256:
    text: SHA_256
    description: 'SHA-2 variant producing a 256-bit hash value.

      Widely used and considered secure for most applications.

      Recommended for digital preservation.

      '
    meaning: premis:cryptographicHashFunctions/sha256
    annotations:
      output_bits:
        tag: output_bits
        value: 256
      security_level:
        tag: security_level
        value: secure
    title: SHA-256
    aliases:
    - SHA256
    exact_mappings:
    - spdx:checksumAlgorithm_sha256
  SHA_384:
    text: SHA_384
    description: 'SHA-2 variant producing a 384-bit hash value.

      Truncated version of SHA-512.

      '
    meaning: premis:cryptographicHashFunctions/sha384
    annotations:
      output_bits:
        tag: output_bits
        value: 384
      security_level:
        tag: security_level
        value: secure
    title: SHA-384
    aliases:
    - SHA384
    exact_mappings:
    - spdx:checksumAlgorithm_sha384
  SHA_512:
    text: SHA_512
    description: 'SHA-2 variant producing a 512-bit hash value.

      Highest security level in the SHA-2 family.

      '
    meaning: premis:cryptographicHashFunctions/sha512
    annotations:
      output_bits:
        tag: output_bits
        value: 512
      security_level:
        tag: security_level
        value: secure
    title: SHA-512
    aliases:
    - SHA512
    exact_mappings:
    - spdx:checksumAlgorithm_sha512
  SHA3_224:
    text: SHA3_224
    description: 'SHA-3 variant producing a 224-bit hash value.

      Based on the Keccak algorithm.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: 224
      security_level:
        tag: security_level
        value: secure
    title: SHA3-224
    exact_mappings:
    - spdx:checksumAlgorithm_sha3_224
  SHA3_256:
    text: SHA3_256
    description: 'SHA-3 variant producing a 256-bit hash value.

      Based on the Keccak algorithm. Provides defense against

      length extension attacks.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: 256
      security_level:
        tag: security_level
        value: secure
    title: SHA3-256
    exact_mappings:
    - spdx:checksumAlgorithm_sha3_256
  SHA3_384:
    text: SHA3_384
    description: 'SHA-3 variant producing a 384-bit hash value.

      Based on the Keccak algorithm.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: 384
      security_level:
        tag: security_level
        value: secure
    title: SHA3-384
    exact_mappings:
    - spdx:checksumAlgorithm_sha3_384
  SHA3_512:
    text: SHA3_512
    description: 'SHA-3 variant producing a 512-bit hash value.

      Based on the Keccak algorithm.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: 512
      security_level:
        tag: security_level
        value: secure
    title: SHA3-512
    exact_mappings:
    - spdx:checksumAlgorithm_sha3_512
  BLAKE2B_256:
    text: BLAKE2B_256
    description: 'BLAKE2b variant producing a 256-bit hash value.

      Faster than MD5 and SHA-1 while being more secure.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: 256
      security_level:
        tag: security_level
        value: secure
    title: BLAKE2b-256
    exact_mappings:
    - spdx:checksumAlgorithm_blake2b256
  BLAKE2B_384:
    text: BLAKE2B_384
    description: 'BLAKE2b variant producing a 384-bit hash value.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: 384
      security_level:
        tag: security_level
        value: secure
    title: BLAKE2b-384
    exact_mappings:
    - spdx:checksumAlgorithm_blake2b384
  BLAKE2B_512:
    text: BLAKE2B_512
    description: 'BLAKE2b variant producing a 512-bit hash value.

      Optimized for 64-bit platforms.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: 512
      security_level:
        tag: security_level
        value: secure
    title: BLAKE2b-512
    exact_mappings:
    - spdx:checksumAlgorithm_blake2b512
  BLAKE3:
    text: BLAKE3
    description: 'Latest BLAKE variant, extremely fast with 256-bit output.

      Supports parallelization and incremental hashing.

      '
    annotations:
      output_bits:
        tag: output_bits
        value: 256
      security_level:
        tag: security_level
        value: secure
    title: BLAKE3
    exact_mappings:
    - spdx:checksumAlgorithm_blake3
  TIGER:
    text: TIGER
    description: 'A cryptographic hash function designed for 64-bit platforms.

      Produces a 192-bit hash value.

      '
    meaning: premis:cryptographicHashFunctions/tig
    annotations:
      output_bits:
        tag: output_bits
        value: 192
      security_level:
        tag: security_level
        value: adequate
    title: Tiger
  WHIRLPOOL:
    text: WHIRLPOOL
    description: 'A cryptographic hash function producing a 512-bit hash value.

      Based on a modified AES block cipher.

      '
    meaning: premis:cryptographicHashFunctions/whi
    annotations:
      output_bits:
        tag: output_bits
        value: 512
      security_level:
        tag: security_level
        value: secure
    title: Whirlpool
  UNKNOWN:
    text: UNKNOWN
    description: The hash algorithm is not known or not specified.
    meaning: premis:cryptographicHashFunctions/unk