My Algorithm::CouponCode module generates a checkdigit using a simple hash function. The function 'hashes' 45 bits of data to produce a 5 bit checksum.

I cannot conceive of a situation where a 5 bit checksum would be considered a security device. At most there are 32 possible values (actually only 31 in my case) so if someone wished to generate codes which appeared valid to your "supposed-to-be secure system" they could do a brute force attempt of every possible checkdigit value in considerably less time than it would take them to download my code, let alone read it.

The situation seems analogous to the credit card industry. A credit card number includes a check digit but that doesn't mean you can make up a number, calculate a valid check digit and then use it to buy stuff online - a card number can only be used if some bank somewhere looks it up in their database and says "yes, we will honour that transaction".


In reply to Re^10: RFC: Algorithm::CouponCode by grantm
in thread RFC: Algorithm::CouponCode by grantm

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.