On Mar 28, 1:56 pm, "Gabriel Genellina" <[EMAIL PROTECTED]> wrote: > En Fri, 28 Mar 2008 13:22:06 -0300, Clodoaldo <[EMAIL PROTECTED]> > escribió: > > > > > On Mar 28, 12:09 pm, "Gabriel Genellina" <[EMAIL PROTECTED]> wrote: > >> En Fri, 28 Mar 2008 10:54:49 -0300, Clodoaldo > >> <[EMAIL PROTECTED]> escribió: > > >> > What i need to know is where can an equal char appear in a > >> > urlsafe_b64encoded string?: > > >> > a)only at end; > >> > b)both at the end and at the begginig; > >> > c)anywhere in the string; > > >> > A sure answer will make my regexp safer. > > >> Only at the end. The encoded string has 4*n chars when the input string > >> has 3*n chars; when the input length is 3*n+1 or 3*n+2, the output has > >> 4*(n+1) chars right padded with 2 or 1 "=" chars. > >> If your input has 3n chars, the output won't have any "=" > > > Thanks. But I'm not sure i get it. What is n? > > (Any nonnegative integer...) > I mean: For base64 encoding, the length of the output depends solely of > the length of the input. If the input string length is a multiple of 3, > the output length is a multiple of 4, with no "=". If the input length is > one more than a multiple of 3, the output has two "==" at the end. If the > input length is two more than a multiple of 3, the output has only one "=" > at the end. In all cases, the output length is a multiple of 4. > > [base64 uses 64=2**6 characters so it encodes 6 bits per character; to > encode 3 bytes=3*8=24 bits one requires 24/6=4 characters] > > > A md5 digest will always be 16 bytes length. So if i understand it > > correctly (not sure) the output will always be 22 chars plus two > > trailing equal chars. Right? > > Exactly.
Thank you. That was great support! -- http://mail.python.org/mailman/listinfo/python-list