Saltie

Saltie is a pseudo-encryption library primarily used for obfuscating numerical identifiers to opaque strings.

This is a port of Hashids, the versioning is kept in sync with it.

Installation

Add Saltie as a dependency to your Mix project:

defp deps do
  [{:saltie, "== 0.3.0"}]
end

Usage

Saltie encrypts a list of integers into a char list. Some of the encryption parameters can be customized.

s = Saltie.new([
  key: '123',  # using a custom key helps producing unique cipher text
  min_len: 2,  # minimum length of the cipher text (1 by default)
])

cipher1 = Saltie.encrypt(s, 129)
#=> 'pE6'

cipher2 = Saltie.encrypt(s, [1,2,3,4])
#=> '4bSwImsd'

# decrypt() always returns a list of numbers

Saltie.decrypt(s, cipher1)
#=> [129]

Saltie.decrypt(s, cipher2)
#=> [1, 2, 3, 4]

It is also possible to customize the character set used for the cipher text by providing an alphabet as a char list. It has to be at least 16 characters long.

s = Saltie.new(alphabet: '1234567890абвгдежизклмн')

cipher = Saltie.encrypt(s, [1234, 786, 21, 0])

List.to_string(cipher)
#=> "имнк40же3ги1з"

Saltie.decrypt(s, cipher)
#=> [1234, 786, 21, 0]

License

This software is licensed under the MIT license.