Shorten your sequence number or hash key.
npm i sequence-shorten
If u want to encode ur sequence number or hash key.
import SequenceShorten from 'sequence-shorten';
const sequenceNumber = 19950824;
// Result: bvShE
(new SequenceShorten).encode(sequenceNumber);
// If you care about security,
// You can encrypt the value by adding the encoder and decoder as argument values
// When you create the object as shown below
const encoder = (value: number): number => {
const key = Math.floor(Math.random() * 0xff) + 0x01;
return ((value ^ key) << 8) | key;
};
const decoder = (value: number): number => {
const key = value & 0xff;
return (value >> 8) ^ key;
};
(new SequenceShorten(encoder, decoder)).encode(sequenceNumber);
Or want to decode like below.
import SequenceShorten from 'sequence-shorten';
const sequenceNumber = 19950824;
const encodedNumber = (new SequenceShorten).encode(sequenceNumber);
// Result: 19950824
(new SequenceShorten).decode(encodedNumber);
- There must be no x1, x2 (with x1 ≠ x2) that will make f(x1) = f(x2),
- and for every y you must be able to find an x so that f(x) = y.