2011-02-06 158 views
0

我想弄清楚如何以类似于Facebook's signed_request的方式对会话cookie进行编码。'unpack(“m”)`的反义词是什么?

The runwithfriends Facebook sample appimplements base64_url_decode & base64_url_decode in Python

我发现一个简单的实施base64_url_decode

def base64_url_decode(string) 
    "#{string}==".tr("-_", "+/").unpack("m")[0] 
end 

如何实现base64_url_encode瓦特/ O require 'base64'。 (我认为最好是没有require 'base64',对吗?)

基本上,unpack("m")的反义词是什么?

ruby-1.9.2-p0 > "aGVsbG8sIG1ycyB0ZWFs\012".unpack("m") 
=> ["hello, mrs teal"] 

回答

3
查看

Base64.encode64源从the documentation收率:

# File base64.rb, line 37 
def encode64(bin) 
    [bin].pack("m") 
end 

是的,unpack对面是pack

+0

对于SO最明显的问题/答案,我见过..D但是不,另一个是*什么是Ruby中的[[]]?* – Nakilon 2011-02-06 19:51:18

+0

哦!哈哈。谢谢!我在找Sting#pack。 – ma11hew28 2011-02-06 19:51:59

1

解包(“m”)的反义词是什么?

当然是pack("m")?或者这是个诡计问题?

["hello, mrs teal"].pack("m") # => "aGVsbG8sIG1ycyB0ZWFs\n"