Skip to content

checksum v2 still misses last column/3 characters of id #61

@samj

Description

@samj

id is 24 characters but checksum only covers 21 characters (0..20):

const checksum = (prefix, id) => {
    const pb = Buffer.from(prefix)
    const dib = Buffer.from(id)
    const a =
        pb[0] + dib[0] + dib[3] + dib[6] + dib[9] + dib[12] + dib[15] + dib[18]
    const b =
        pb[1] + dib[1] + dib[4] + dib[7] + dib[10] + dib[13] + dib[16] + dib[19]
    const c =
        pb[2] + dib[2] + dib[5] + dib[8] + dib[11] + dib[14] + dib[17] + dib[20]
    return (
        HELLO_ALPHABET[a % 62] + HELLO_ALPHABET[b % 62] + HELLO_ALPHABET[c % 62]
    )
}

suggest creating a v3 checksum which covers all 23 characters in case someone relies upon this checksum acting as a checksum:

const checksum = (prefix, id) => {
    const pb = Buffer.from(prefix)
    const dib = Buffer.from(id)
    const a =
        pb[0] + dib[0] + dib[3] + dib[6] + dib[9] + dib[12] + dib[15] + dib[18] + dib[21]
    const b =
        pb[1] + dib[1] + dib[4] + dib[7] + dib[10] + dib[13] + dib[16] + dib[19] + dib[22]
    const c =
        pb[2] + dib[2] + dib[5] + dib[8] + dib[11] + dib[14] + dib[17] + dib[20] + dib[23]
    return (
        HELLO_ALPHABET[a % 62] + HELLO_ALPHABET[b % 62] + HELLO_ALPHABET[c % 62]
    )
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions