#encryption #postgresql #psql #generic #collision #native #u128

pseudo_encrypt

Provides a native-Rust generic implementation of Psql's pseudo_encrypt

3 releases

0.1.3 Oct 31, 2020
0.1.2 Oct 29, 2020
0.1.1 Oct 29, 2020
0.1.0 Oct 29, 2020

#1804 in Algorithms

MIT license

16KB
291 lines

pseudo_encrypt-rs

pseudo_encrypt-rs-CI pseudo_encrypt Crates.io

This is a native Rust generic implementation of the pseudo_encrypt function from Psql

pseudo_encrypt(int) can be used as a pseudo-random generator of unique values. It produces an integer output that is uniquely associated to its integer input (by a mathematical permutation), but looks random at the same time, with zero collision. This is useful to communicate numbers generated sequentially without revealing their ordinal position in the sequence (for ticket numbers, URLs shorteners, promo codes...

There is out of the box support for integer primitives that are 32bit and up:

  • i32
  • u32
  • i64
  • u64
  • i128
  • u128

No runtime deps