package core:hash

⌘K
Ctrl+K
or
/

    Overview

    crc32, crc64, adler32, djb, fnv, jenkins, murmur and other hashes.

    Index

    Types (0)

    This section is empty.

    Constants (0)

    This section is empty.

    Variables (0)

    This section is empty.

    Procedure Groups (0)

    This section is empty.

    Types

    This section is empty.

    Constants

    This section is empty.

    Variables

    This section is empty.

    Procedures

    adler32 ¶

    adler32 :: proc "contextless" (data: []u8, seed: u32 = u32(1)) -> u32 {…}

    crc16_ccitt_0x1021 ¶

    crc16_ccitt_0x1021 :: proc "contextless" (data: []u8, seed: u16 = u16(0)) -> (result: u16) {…}
     

    Compute CRC-16 in the manner of CCITT (ITU-T V.41), using the 0x1021 polynomial. Generator polynomial: x^16 + x^12 + x^5 + 1

    Used in the UDF (DVD *.iso) disk format's Volume Descriptor Tag, and was more historically the ITU-T V.41 CRC-16 used in the XModem protocol, which uses 0xffff as the initial value.

    crc32 ¶

    crc32 :: proc "contextless" (data: []u8, seed: u32 = u32(0)) -> u32 {…}

    crc64_ecma_182 ¶

    crc64_ecma_182 :: proc "contextless" (data: []u8, seed: u64 = u64(0)) -> (result: u64) {…}

    crc64_iso_3306 ¶

    crc64_iso_3306 :: proc "contextless" (data: []u8, seed: u64 = u64(0)) -> u64 {…}
     

    Generator polynomial: x^64 + x^4 + x^3 + x + 1

    crc64_iso_3306_inverse ¶

    crc64_iso_3306_inverse :: proc "contextless" (data: []u8, seed: u64 = u64(0)) -> u64 {…}

    crc64_xz ¶

    crc64_xz :: proc "contextless" (data: []u8, seed: u64 = u64(0)) -> u64 {…}
     

    Compute CRC-64 in the manner of xz, using the ECMA-182 polynomial, bit-reversed, with one's complement pre and post processing. Based on Mark Adler's v1.4 implementation in C under the ZLIB license.

    djb2 ¶

    djb2 :: proc "contextless" (data: []u8, seed: u32 = u32(5381)) -> u32 {…}

    djbx33a ¶

    djbx33a :: proc "contextless" (data: []u8, seed: u32 = u32(5381)) -> (result: [16]u8) {…}

    fnv32 ¶

    fnv32 :: fnv32_no_a
     

    If you have a choice, prefer fnv32a

    fnv32_no_a ¶

    fnv32_no_a :: proc "contextless" (data: []u8, seed: u32 = u32(0x811c9dc5)) -> u32 {…}
     

    If you have a choice, prefer fnv32a

    fnv32a ¶

    fnv32a :: proc "contextless" (data: []u8, seed: u32 = u32(0x811c9dc5)) -> u32 {…}

    fnv64 ¶

    fnv64 :: fnv64_no_a
     

    If you have a choice, prefer fnv64a

    fnv64_no_a ¶

    fnv64_no_a :: proc "contextless" (data: []u8, seed: u64 = u64(0xcbf29ce484222325)) -> u64 {…}
     

    If you have a choice, prefer fnv64a

    fnv64a ¶

    fnv64a :: proc "contextless" (data: []u8, seed: u64 = u64(0xcbf29ce484222325)) -> u64 {…}

    ginger16 ¶

    ginger16 :: proc "contextless" (data: []u8) -> u16 {…}

    ginger8 ¶

    ginger8 :: proc "contextless" (data: []u8) -> u8 {…}

    ginger_hash16 ¶

    ginger_hash16 :: proc "contextless" (x: u16) -> u16 {…}

    ginger_hash8 ¶

    ginger_hash8 :: proc "contextless" (x: u8) -> u8 {…}

    jenkins ¶

    jenkins :: proc "contextless" (data: []u8, seed: u32 = u32(0)) -> u32 {…}

    murmur32 ¶

    murmur32 :: proc "contextless" (data: []u8, seed: u32 = u32(0x9747b28c)) -> u32 {…}

    murmur64a ¶

    murmur64a :: proc "contextless" (data: []u8, seed: u64 = u64(0x9747b28c)) -> u64 {…}
     

    See https://github.com/aappleby/smhasher/blob/master/src/MurmurHash2.cpp#L96

    murmur64b ¶

    murmur64b :: proc "contextless" (data: []u8, seed: u64 = u64(0x9747b28c)) -> u64 {…}
     

    See https://github.com/aappleby/smhasher/blob/master/src/MurmurHash2.cpp#L140

    sdbm ¶

    sdbm :: proc "contextless" (data: []u8, seed: u32 = u32(0)) -> u32 {…}

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-2025-10 (vendor "odin") Windows_amd64 @ 2025-10-26 21:11:50.122410500 +0000 UTC