Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>A couple of ideas that leap to mind:</p> <ul> <li><p>If length permits, you could always generate phrases by picking words from a dictionary. For a good example of this in practice, see <a href="http://www.diceware.com/" rel="nofollow noreferrer">Diceware</a>. </p></li> <li><p>If length is more critical, use a list of syllables and the result would be a nonsense but pronounceable word. You might need to filter the results to remove undesirable actual words, however.</p></li> <li><p>If pronounceable is not required, but you want to be able to quickly verify a code as coming from your system, then a small CRC of a (salted?) counter packed into a byte array and encoded with <a href="http://en.wikipedia.org/wiki/Base64" rel="nofollow noreferrer">base64</a> or similar would work. You can improve the human factors by keeping the code short, and by picking an encoding that eliminates similar letters (i.e. don't have 'O', 'o', '0', and 'Q' all in the table). </p></li> <li><p>If the code needs to be longer than about 5 characters in practice, then consider adopting a standard punctuation scheme that breaks it into chunks. "A236re8ww1jkm" is much harder than "A236-re8wM-1jkz" to read and transcribe. The number five here is a wild guess... there is probably literature on the best length.</p></li> <li><p>If this is really a crypto question, (i.e. if there is significant real value to be had from forging these codes) then consult a crypto expert for a best practices answer because rolling your own will cause grief eventually.</p></li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload