Skip to content

Pure ruby library translating a token to base32 using the crockford alphabeth.

License

Notifications You must be signed in to change notification settings

wrimle/base32_pure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

base32_pure

Encodes and decodes binary string or integer tokens to and from base32.

Description

It uses the Crockford alphabet defined at www.crockford.com/wrmg/base32.html - which is probably not the most efficient, but it is tolerant to user mistakes.

  • It’s case insensitive

  • I, l and 1 maps to the same value

  • 0 and O maps to the same value

  • U is excluded to reduce the likelyhood of accidental obscenity

Usage

require 'base32_pure'

encoded = Base32::Crockford.encode("Some token")
Base32::Crockford.decode(encoded)

hypenated = Base32::Crockford.hypenate(encoded)
Base32::Crockford.decode(hypenated)

# Fixnum and Bignum should work as well
encoded = Base32::Crockford.encode(12345)
Base32::Crockford.decode(encoded, :integer)

# Typical use case
require 'uuidtools'

digest = UUIDTools::UUID.random_create.raw
base32_token = Base32::Crockford.encode(digest)

Features/problems

The optional check value is not implemented.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2010 Rune Myrland. See LICENSE for details.

About

Pure ruby library translating a token to base32 using the crockford alphabeth.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages