Yes, there is a random variable that is set on each iteration in recent Perls which causes the hashing algorithm to change. This is a response to a possible denial of service attack on Perl-based applications.

The basis of the attack is that while on average adding n entries to a hash is O(n), if you encounter the wrong data set it is O(n*n). If you know the hashing algorithm that someone is using you may therefore be able to feed them data that will cause them to use up a surprising amount of CPU time. This makes denial of service attacks easier.

But now there is no way to predict exactly what hashing algorithm you'll face, making it impossible to construct a dataset that reliably causes Perl to run into this problem.


In reply to Re: Randomizing Hash Implementation? by tilly
in thread Randomizing Hash Implementation? by saintmike

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.