arc4-lib
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

arc4-lib

Iterable ARC4

install

npm install arc4-lib

demo

index.d.ts

 
import { ARC4, ARC4_LENGTH, seedFromUnsafeBuffer } from 'arc4-lib';
 
let mixinArray: number[];
let seed: any = 'a any type seed';
 
//seed = '][简日双语MP4][720P]';
//seed = createArray(ARC4_LENGTH * 2, (v, i) => i * Math.random());
 
let arc4 = ARC4(seed, mixinArray, {
// mixinArray: true,
    /**
     * make iterator never end
     */
// loop: true,
    /**
     * show arc4 state and real seed
     */
    state: true,
});
 
let i = 5;
 
for (let v of arc4)
{
    i--;
    console.log(1, v);
    if (!i)
    {
        break;
    }
}
 
i = 5;
 
while (i--)
{
    console.log(i, arc4.next());
}
 
i = 260;
i = 5;
 
while (i--)
{
    console.log(i, arc4rand());
}
 
console.log(JSON.stringify(arc4));
 
let t = Buffer.from('k12');
let t1 = arc4.transform(t);
/**
 * when loop is true, will not transform t1 back to t
 */
let t2 = arc4.transform(t1);
 
console.log(t, t1, t2);
 
console.log(t1.toString('hex'), t2.toString('hex'));
 
/**
 * fake random
 */
function arc4rand()
{
    if (0)
    {
        let number =
            arc4.next() * 0x1
            + arc4.next() * 0x100000000
            + arc4.next() * 0x1000000
            + arc4.next() * 0x10000
            + arc4.next() * 0x100
            + arc4.next() * 0x100000000000000
            + arc4.next() * 0x1000000000000
            + arc4.next() * 0x10000000000
        ;
        let random = number / 0x10000000000000000;
 
        return random
    }
 
    let number =
        arc4.next() * 0x1
        + arc4.next() * 0x100
        + arc4.next() * 0x10000
        + arc4.next() * 0x1000000
        + arc4.next() * 0x100000000
        + arc4.next() * 0x10000000000
        + arc4.next() * 0x1000000000000
        + arc4.next() * 0x100000000000000
    ;
    let random = number / 18446744073709551616;
 
    return random
}
 

Package Sidebar

Install

npm i arc4-lib

Weekly Downloads

2

Version

1.0.2

License

ISC

Unpacked Size

26.6 kB

Total Files

13

Last publish

Collaborators

  • bluelovers