Skip to main content

ShortStr is a Python module to generate unambiguous, homoglyph-less "shortstrings" for URL shortners and similar services.

Project description

ShortStr is a Python module to generate unambiguous, homoglyph-less “shortstrings” for URL shortners and similar services.

pip install shortstr

Websites such as Pastebin have unique alphanumeric strings IDs, like https://pastebin.com/mKxTdEeT. Code like ‘’.join([random.choice(string.ascii_letters + string.digits) for x in range(5)]) can be used to generate strings like ‘DY6iv’, but these can include similar-looking characters (called homoglyphs) like O and 0.

The shortstr module generates these shortstrings without the l, I, o, O, 0, and 1 homoglyphs. It also has checksum and can check for repeat shortstrings to ensure you only produce unique shortstrings, and uses os.urandom() to produce truly random shortstrings, not pseudorandom shortstrings.

Examples

>>> import shortstr
>>> shortstr.generate()
'kZXmL9'
>>> shortstr.generate('ddddd')
'67249f'
>>> shortstr.generate('ddddd', includeChecksum=False)
'39844'
>>> shortstr.generate('ccccc', includeChecksum=False)
'gKXda'
>>> shortstr.generate('lllll', includeChecksum=False)
'qibkp'
>>> shortstr.generate('uuuuu', includeChecksum=False)
'WWXGC'
>>> shortstr.generate('***dddcccllluuu', includeChecksum=False)
'5SP534FiBtxtMCG'
>>> shortstr.isValid('kZXmL9')
True
>>> shortstr.isValid('67249f')
True
>>> shortstr.isValid('invalid shortstring')
False

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ShortStr, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size ShortStr-1.0.0.tar.gz (8.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page