Works fine, as I don't need security but obfuscation

Great algorithm ! Thanks a lot




On Thu, Jan 29, 2009 at 6:25 PM, Ted Dunning <[email protected]> wrote:

> Multiply by a reasonably large prime number p and reduce modulo 2^n where n
> is big enough.
>
> Since p and 2^n are relatively prime, this method will permute the numbers
> in [0, 2^n).  You can compute compute q such that p q = 1 mod 2^n pretty
> easily which lets you invert this mapping easily.
>
> This is definitely not cryptographic quality, but it works very well.  If
> somebody has access to nearly consecutive mapped numbers and they know your
> method then they can invert it relatively easily.  If they have access to
> just a few numbers that are not near each other in the sequence it would be
> difficult to reverse engineer.
>
> If you want higher security, just use one of the standard ciphers built
> into
> java such as AES (or even DES).  It is just a few lines of code to encrypt
> a
> 64 bit number.  Make sure you aren't using any kind of cipher feedback.
> Speed is not super high, but is plenty fast compared to any disk operation
> so it should be fine in the face of database delays.
>
>
> On Thu, Jan 29, 2009 at 6:18 AM, nicolas de loof <[email protected]>
> wrote:
>
> > Hi,
> > I have to generate some alpanumeric ID based on a database sequence.
> > The idea is to generate some ID that will not indicate the ordering in
> the
> > database, or it's amount of data
> >
> > It's easy to convert some long to a String using a 26 based number
> > conversion.
> > I now need some mathematical function to "disperse" my sequenc-generated
> ID
> > into the numbers space.
> >
> > Any suggestion ?
> >
> > Nicolas
> >
>
>
>
> --
> Ted Dunning, CTO
> DeepDyve
> 4600 Bohannon Drive, Suite 220
> Menlo Park, CA 94025
> www.deepdyve.com
> 650-324-0110, ext. 738
> 858-414-0013 (m)
>

Reply via email to