Nginx uid decoding using Base64.decode64

Hi,
I was facing a problem while decoding a nginx generated uid using
ruby.

The uid which I get from nginx cookie is “CqCx7E5qMNUxrmAUAwMJAg==” and
when I try to decode this using
Base64.decode64(“CqCx7E5qMNUxrmAUAwMJAg==”) , it gives me
“\n\xA0\xB1\xECNj0\xD51\xAE`\x14\x03\x03\t\x02” instead of
“ECB1A00AD5306A4E1460AE3102090303” which I see in my access
logs($uid_got value).

can any one give some suggestions on this issue?

Hello!

On Fri, Sep 09, 2011 at 07:35:20PM +0200, dhaval d. wrote:

can any one give some suggestions on this issue?

Logged value is a hex representation of the data, using 4 host-order
uint32_t values. I.e. “\n\xA0\xB1\xEC” matches “ECB1A00A” and so on.

Maxim D.

Hello Maxim,
Thanks a lot for your reply. Because of which I was able to
figure out the way to decode it. Here is the snippet for those who wants
to know.

cookie = “CqCx7E5qMNUxrmAUAwMJAg==”

Base64.decode64(cookie).unpack(“L*”).collect{|num|
num.to_s(16)}.join("").upcase