I don't think it's possible, though, unless you change your
intermittent base. 64 is there because "111111".to_i(2) is 63. In
other words the information you store by bits (0 and 1) will have to
cover the gamut of 64 characters and no less. Now, you can limit the
number of characters to 32 (using 5 bits), if you're willing to have
the encoding severely larger.
If you used something other than "bits", like a different base, I
thought it would be possible, but 62 is only divisible by 2 and 31.
I suppose the pragmatic approach would be to take your undesirable
characters and alter them; replacing "=" with "555", for example.
I never actually knew anything about base64, so thanks for getting me
to learn something
Todd
···
On Tue, May 5, 2009 at 1:10 PM, Srikanth Jeeva <sri.jjhero@gmail.com> wrote:
Hi,
can anyone help me in base62 encoding??
if i Encode "ilovemyworld" i should get a code with format[A-Za-z0-9].
If i decode the format, i should get back "ilovemyworld"
For Example,
encode "ilovemyworld" # eDr4e3S
decode "eDr4e3S" # ilovemyworld
Isn't that just a simple cipher (i.e. map)? I must be missing
something. According to what I've read so far, base64 is not, and
base62 is, except for that paper written in a scientific journal that
I don't have access to (but, for the summary, of course). I suppose
that is what the OP wanted anyway.
Todd
···
On Wed, May 6, 2009 at 11:32 AM, Martin DeMello <martindemello@gmail.com> wrote:
it's definitely possible, just inefficient. first you set up your lookup table:
To go the other way, you repeatedly add the least significant digit
and multiply by the base
so 3434[7]
start with 0, and read the digits in forward order
(0 * 7) + 3 = 3
3 * 7 + 4 = 25
24 * 7 + 3 = 178
178 * 7 + 4 = 1250 <--- et voila!
martin
martin
···
On Wed, May 6, 2009 at 11:42 PM, Todd Benson <caduceass@gmail.com> wrote:
On Wed, May 6, 2009 at 11:32 AM, Martin DeMello <martindemello@gmail.com> wrote:
out = ""
while n > 0
rest, units = n.divmod(62)
out = digits[units] + out
n = rest
end
Isn't that just a simple cipher (i.e. map)? I must be missing
something. According to what I've read so far, base64 is not, and
base62 is, except for that paper written in a scientific journal that
I don't have access to (but, for the summary, of course). I suppose
that is what the OP wanted anyway.