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(キーを持つもの)からbase64値をデコードし、'HashData'印刷可能な16進数に変換します。

于 2012-11-20T21:26:53.590 に答える
2
  • join("")配列内のすべての文字列(または配列内の各要素が呼び出し時に返すものto_s)を連結します。
  • unpack('m')ドキュメントから文字列をデコードします(そしてそれはbase64でエンコードされていると想定しています)。
  • sprintf("%02X", b)ドキュメントから、大文字の16進表現が返されます。
  • hash_decoded << ..文字列に16進表現を追加します

肝心なのは、で結合された文字列の16進バージョン(大文字を含む)を表す文字列を取得することですplist_values['HashData']

于 2012-11-20T21:36:51.090 に答える