Suppose now that Dana and Damien also reply to Alice’s twt, but use the twt hash extension to pick their subject string. When Bob gets their replies, his client is unable to figure out that #b795meh
and #431barf
refer to the same twt - since hashes are one-way, Bob cannot recover the original urls from the hash and run them through his url-equivalence-checker.
An amusing consequence of the hash truncation misdesign: it’s possible to just make up hashes for hypothetical examples and be sure that they won’t collide with any real hash - just pick anything other than q
or a
for the last character.
Though actually, it’s still pretty easy to create strings that look like hashes even though they can’t ever be generated “legitimately”. Just use 1
, 8
or 9
anywhere in the string - those digits aren’t part of the base32 alphabet.