-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
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]
)
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels