I wanted to use unique IDs in a project and the nanoid library looked interesting. There was a Java version available, but nothing available in ColdFusion/CFML. I didn't want to have to manually add a JAR file to my server, so I ported it and added support for:
- multiple dictionaries (numbers, hexadecimalLowercase, hexadecimalUppercase, lowercase, uppercase, alphanumeric, nolookalikes & nolookalikesSafe)
- multiple algorithms (SHA1PRNG, IBMSecureRandom, NativePRNG, NativePRNGBlocking & NativePRNGNonBlocking)
I also created a test script with ms/ns benchmarks and example code so that the results could be reviewed.
This was also my first ever #Hacktoberfest submission.