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
- https://id.loc.gov/vocabulary/preservation/cryptographicHashFunctions.html
- https://spdx.github.io/spdx-spec/v2.3/file-information/#89-file-checksum-field
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