<html><head><meta http-equiv="content-type" content="text/html; charset=us-ascii"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">On 4 Aug 2025, at 22:32, Jon Callas <jon@callas.org> wrote:<div><blockquote type="cite"><div><span style="caret-color: rgb(0, 0, 0); font-family: CMUTypewriter-Regular; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">Lastly, there's another reason to use SipHash (or something else), and that is that there are people who will get triggered by MD5 and their brains will shut down. "MD5? Slowly, I turned, step by step..." They're going to tell you that you can't use MD5, it's not secure. They will not listen to you when you say that what you're really using it for is a sequence of 16-bit quantities that are mostly pseudorandom, and not anything else. And that 16-bit quantities are gonna have collisions because they're that small.</span></div></blockquote></div><br><div>I am sympathetic. However, I have seen too many times where something broken-but-safe was used as a reference in a different context where something strong was needed. If one is adamant about keeping MD5, though, g<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">ood comments can mitigate that risk. </span>Something like...</div><div><br></div><div>// MD5 is a _broken_ cryptographic hash function, but we don't need cryptographic guarantees here.</div><div><br></div><div>A reviewer should naturally ask, then, why settle for MD5 when there are hash functions better suited to the system's needs?</div><div><br></div><div>- d.</div><div><br></div></body></html>