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

我需要把它翻译成其他语言。据我了解,它将'HashData'数组的所有内容放入一个字符串中,然后从Base64解码,但接下来呢?你能给我写一个分步解释它的作用吗?提前致谢!

4

2 回答 2

3

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

于 2012-11-20T21:26:53.590 回答
2
  • join("")连接数组中的所有字符串(或调用时数组中的每个元素返回的内容to_s)。
  • unpack('m')文档解码字符串(并假设它是base64编码的)。
  • sprintf("%02X", b)文档返回带有大写字母的十六进制表示。
  • hash_decoded << ..将十六进制表示附加到字符串

最重要的是,您将获得一个字符串,该字符串表示plist_values['HashData'].

于 2012-11-20T21:36:51.090 回答