<p>Did you tried <strong>proquints</strong>?</p>

<p>A Proquint is a PRO-nouncable QUINT-uplet of alternating unambiguous consonants and vowels, for example: "lusab".</p>

<p>I think they meet almost all your requirements.</p>

<p>See the proposal <a href="http://arxiv.org/html/0901.4016" rel="nofollow">here</a>.
And <a href="https://github.com/dsw/proquint" rel="nofollow">here</a> is the official implementation in C and Java.</p>

<p>I've worked on a port to .NET that you can download as <a href="https://github.com/thepirat000/Proquint.NET" rel="nofollow">Proquint.NET</a>. </p>
Generate short, unique identifiers
<p>I'm looking for an algorithm which generates identifiers suitable for both, external use in e.g. URLs as well as persistence with the following requirements:</p>

<ul>
<li><strong>Short</strong>, like a max. of 8 characters</li>
<li><strong>URL-friendly</strong>, so no special characters</li>
<li><strong>Human-friendly</strong>, e.g. no ambigous characters like L/l, 0/O</li>
<li><strong>Incremental</strong> for fast indexing</li>
<li><strong>Random</strong>  to prevent guessing without knowing the algorithm (would be nice, but not important)</li>
<li><strong>Unique</strong> without requiring to check the database</li>
</ul>

<p>I looked at various solutions, but all I found have some major tradeoffs. For example: </p>

<ul>
<li>GUID: Too long, not incremental</li>
<li>GUID base64 encoded: Still too long, not incremental</li>
<li>GUID ascii85 encoded: Short, not incremental, too many unsuitable characters</li>
<li>GUID encodings like base32, base36: Short, but loss of information</li>
<li>Comb GUID: Too long, however incremental</li>
<li>All others based on random: Require checking the DB for uniqueness</li>
<li>Time-based: Prone to collisions in clustered or multi-threaded environments</li>
</ul>

<hr>

<p><strong>Edit</strong>: Why has this been marked off-topic? The requirements describe a specific problem to which numerous legitimate solutions can be provided. In fact, some of the solutions here are so good, I'm struggling with choosing the one to mark as answer.</p>