seb-c/alpha-increment

There is no license information available for the latest version (1.0.0) of this package.

A library to generate a really unique string from just a classic auto-incremental numeric id.

1.0.0 2016-11-19 17:01 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:24:56 UTC


README

AlphaIncrement is a simple library that allows you to generate really unique strings from an incremental id.

This does not aim to be cryptographically secure nor to be used for security purposes.

This is useful if you need an easy way to get some kind of unique serial number without especially needing to hide the original id.

As you can see below, there is still some kind of pattern in the results that an end-user may guess, but it shouldn't be a problem in most cases.

Basic use

$ai = new AlphaIncrement();
echo $ai->encode(1); // prints "TKSAC"
echo $ai->encode(2); // prints "TKSAD"
echo $ai->encode(3); // prints "TKSAZ"
echo $ai->encode(42); // prints "TKSKY"
echo $ai->encode(314); // prints "TKSGB"
echo $ai->encode(7654321); // prints "9JXCC"

Advanced use

You can pass three arguments to the constructor :

  • The length of the result string (default: 5);
  • The alphabet (list of chars to use, as a string). Default: digits and uppercase letters. Unicode characters are supported;
  • You can pass false here to disable the alphabet shuffling, which is used by default to improve randomization of the results.
$ai = new AlphaIncrement(4, 'πŸ˜€πŸ˜ƒπŸ˜‰πŸ˜‹πŸ˜ŽπŸ˜΄πŸ˜•πŸ˜“πŸ˜žπŸ˜‡', false);
echo $ai->encode(1); // prints "πŸ˜‹πŸ˜žπŸ˜‰πŸ˜΄"
echo $ai->encode(2); // prints "πŸ˜‹πŸ˜žπŸ˜‰πŸ˜•"
echo $ai->encode(3); // prints "πŸ˜‹πŸ˜žπŸ˜‰πŸ˜“"
echo $ai->encode(42); // prints "πŸ˜‹πŸ˜žπŸ˜‰πŸ˜ž"
echo $ai->encode(314); // prints "πŸ˜‹πŸ˜žπŸ˜‰πŸ˜‡"
echo $ai->encode(654321); // prints "πŸ˜‹πŸ˜žπŸ˜‰πŸ˜€"

Big numbers

Of course you can't fit an infinite amount of ids in a size limited string. The way to fallback from an id too large to fit in the specified size is to make a string larger that the expected size

$ai = new AlphaIncrement(3);
echo $ai->encode(10); // returns "SAT"
echo $ai->encode(42); // returns "SKY"
echo $ai->encode(7654321); // returns "9JXCC"
echo $ai->encode(PHP_INT_MAX); // returns "1UL1RDNFPP5OW"