in reply to perl / math: integer obfu

Take a look at Math::BaseCalc

use Math::BaseCalc; my $bc = Math::BaseCalc::new( digits=> [ 'A' .. 'Z', 'a' .. 'z', 2 .. 9 ] ); print $bc->to_base( 99999999 ); # Corrected Hq7un print $bc->from_base( 'Hq7un' ); # Corrected 99999999

This is a straight translation and will only use 5 characters max. If you want to distribute the maping from 10^8 => 60^8 in some non-guessable fashion, you've a some more work to do.


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller

Replies are listed 'Best First'.
Re: Re: perl / math: integer obfu
by simonm (Vicar) on Jul 26, 2003 at 04:45 UTC
    Correcting a few typos in BrowserUk otherwise excellent post:
    use Math::BaseCalc; my $bc = Math::BaseCalc->new( digits=> [ 'A' .. 'Z', 'a' .. 'z', 2 .. 9 ] ); print $bc->to_base( 99999999 ); print $bc->from_base( 'Hq7un' );

    If you want to distribute the maping from 10^8 => 60^8 in some non-guessable fashion, you've a some more work to do.

    From the "obfu" in the title, I get the sense that this is what the OP intended; some type of bit shuffling may be sufficient to ensure that the sequence is not predictable, but I'm not sure how best to go about it...