Skip to content

Latest commit

 

History

History
102 lines (66 loc) · 1.41 KB

README.md

File metadata and controls

102 lines (66 loc) · 1.41 KB

@kanamone/scrambler

Converts an integer to another integer that is unpredictable and reversible.

install

use npm

npm install @kanaomone/scrambler

use yarn

yarn add @kanamone/scrambler

use pnpm

pnpm add @kanamone/scrambler

how to use

find two numbers

  1. Decide the number of digits (ex. 4)
  2. Decide one first odd number (n1) that fits in the number of digits (ex. 1101)
  3. Formulate

1101x - (10^4)y = 1

  1. Enter the formula into Wolfram|Alpha and get an integer solution

x = 10000 n + 8901, y = 1101 n + 980, n element Z

  1. Get the second odd number (n2)

8901

example

import { createScrambler } from '@kanamone/scrambler'

const scrambler = createScrambler({
  digits: 4,
  n1: BigInt(1101),
  n2: BigInt(8901),
  seed: 123456789,
  stages: 10
})

const from = BigInt(1)
const to = scrambler.scramble(from)
const restored = scrambler.restore(to)

console.log({
  from,
  to,
  restored
})

Output

{
  from: 1n,
  to: 4055n,
  restored: 1n
}

methods

createScrambler(options): Scrambler

Return the scrambler.

Options

digits: number

number of digits in space.

n1: number, n2: number

Odd number pair that satisfies (n1 * n2) % (10 ** digits) === 1.

seed: number

Seed value for swap table creation.

stages: number

Number of swap/slide stages.

license

MIT