2011-02-06 11 views
0

セッションクッキーをFacebook's signed_requestと同様の方法でエンコードする方法を解明しようとしています。`unpack(" m ")`の反対は何ですか?

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 

どのように私は、W/O require 'base64'base64_url_encodeを実装するのですが。 (私はrequire 'base64'、そうでしょうか?)

基本的に、unpack("m")の反対は何ですか?

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

答えて

3

the documentation利回りからBase64.encode64のソースを表示:

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

はい、unpackの反対はpackです。

+0

私が今までに見たSOの最も明白な質問/回答です。しかし、他のものは* Rubyで何があったのですか?* – Nakilon

+0

ああ!ハハ。ありがとう!私はSting#packを探していた。 – ma11hew28

+0

Worked!では、Rubyで 'rstrip( '=')'(Pythonでやっている)をどうすればいいですか? – ma11hew28

1

unpack( "m")の逆は何ですか?

確かにそれはpack("m")ですか?またはこれはトリックの質問ですか?

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

質問者が '[]'を追加するのを忘れていたと思います。 – Nakilon

関連する問題