需要一些Ruby翻译

时间:2012-11-20 21:22:09

标签: ruby ruby-1.9.3

plist_values['HashData'].join("").unpack('m')[0].each_byte do |b|
    hash_decoded << sprintf("%02X", b)
end

我需要将其翻译成其他语言。据我所知,它将'HashData'数组的所有内容放入一个字符串,然后从Base64解码,但接下来是什么? 你能给我一步一步解释它的作用吗? 在此先感谢!

2 个答案:

答案 0 :(得分:3)

它从plist_values(带有键'HashData'的那个)解码base64值并将其转换为可打印的十六进制。

答案 1 :(得分:2)

  • join("")连接数组中的所有字符串(或调用to_s时数组中每个元素返回的内容)。
  • 来自docs
  • unpack('m')对字符串进行解码(并假设它是base64编码的)。
  • 来自docs
  • sprintf("%02X", b)返回带有大写字母的十六进制表示。
  • hash_decoded << ..将十六进制表示附加到字符串

底线是你得到一个字符串,表示plist_values['HashData']中连接字符串的十六进制版本(带大写字母)。