菜鸟教程小白 发表于 2022-12-12 13:18:30

ios - 从 plist 文件中解码数据


                                            <p><p>我在 Macbook Air 上用 Textwrangler 编写的文本文件中丢失了一些数据。我在扩展名为 .plist 的文件中找到了其中一些。文件是用xml编写的,看起来像这样:</p>

<pre><code> &lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt;
&lt;!DOCTYPE plist PUBLIC &#34;-//Apple//DTD PLIST 1.0//EN&#34; &#34;http://www.apple.com/DTDs/PropertyList-1.0.dtd&#34;&gt;
&lt;plist version=&#34;1.0&#34;&gt;
&lt;key&gt;/Applications/MAMP/htdocs/04. Clock-box/login.php&lt;/key&gt;
      &lt;dict&gt;
            &lt;key&gt;BBEditStateData&lt;/key&gt;
            &lt;dict&gt;
                &lt;key&gt;MainScrollBar&lt;/key&gt;
                &lt;integer&gt;0&lt;/integer&gt;
                &lt;key&gt;PrintDateIsModificationDate&lt;/key&gt;
                &lt;string&gt;asmo&lt;/string&gt;
                &lt;key&gt;PrintingFont&lt;/key&gt;
                &lt;data&gt;
                YnBsaXN0MDDUAQIDBAUIKClUJHRvcFgkb2JqZWN0c1gk
                dmVyc2lvblkkYXJjaGl2ZXLRBgdUcm9vdIABqQkKDxka
                GxwdJFUkbnVsbNILDA0OViRjbGFzc18QGk5TRm9udERl
                c2NyaXB0b3JBdHRyaWJ1dGVzgAiAAtMQCxESFRZaTlMu
                b2JqZWN0c1dOUy5rZXlzohMUgAWABoAHohcYgAOABF8Q
                E05TRm9udE5hbWVBdHRyaWJ1dGVfEBNOU0ZvbnRTaXpl
                QXR0cmlidXRlXU1lbmxvLVJlZ3VsYXIiQUAAANIeHyAh
                WCRjbGFzc2VzWiRjbGFzc25hbWWjISIjXxATTlNNdXRh
                YmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnlYTlNPYmpl
                Y3TSHh8lJ6ImI18QEE5TRm9udERlc2NyaXB0b3JfEBBO
                U0ZvbnREZXNjcmlwdG9yEgABhqBfEA9OU0tleWVkQXJj
                aGl2ZXIACAARABYAHwAoADIANQA6ADwARgBMAFEAWAB1
                AHcAeQCAAIsAkwCWAJgAmgCcAJ8AoQCjALkAzwDdAOIA
                5wDwAPsA/wEVASIBKwEwATMBRgFZAV4AAAAAAAACAQAA
                AAAAAAAqAAAAAAAAAAAAAAAAAAABcA==
                &lt;/data&gt;
                &lt;key&gt;SelectionEnd&lt;/key&gt;
                &lt;integer&gt;892&lt;/integer&gt;
                &lt;key&gt;SelectionStart&lt;/key&gt;
                &lt;integer&gt;0&lt;/integer&gt;
                &lt;key&gt;WindowShape&lt;/key&gt;
                &lt;string&gt;rect(45,14,1011,1317)&lt;/string&gt;
            &lt;/dict&gt;
            &lt;key&gt;LastAccessed&lt;/key&gt;
            &lt;date&gt;2014-12-09T14:22:18Z&lt;/date&gt;
            &lt;key&gt;MD5&lt;/key&gt;
            &lt;data&gt;
            QTYyMjQ4QjkwMERCRDhEMDgyQjlBMkUxMUZGODBEMkI=
            &lt;/data&gt;
      &lt;/dict&gt;
</code></pre>

<p>如何解码“数据”标签中的数据? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>数据中的代码是<a href="http://en.wikipedia.org/wiki/Base64" rel="noreferrer noopener nofollow">Base64</a> ,可以使用任何在线工具轻松解码,例如 <a href="http://www.opinionatedgeek.com/dotnet/tools/Base64Decode/" rel="noreferrer noopener nofollow">this one</a> .</p>

<p><code>PrintingFont</code> 的数据将解码为二进制文件,其中包含的信息在转换为 ASCII 时或多或少类似于这样(显然不包括注释):</p>

<pre><code>// !!! BINARY PROPERTY LIST WARNING !!!
//
// The pretty-printed property list below has been created
// from a binary version on disk and should not be saved as
// the ASCII format is a subset of the binary representation!
//
{   &#34;$archiver&#34; = &#34;NSKeyedArchiver&#34;;
    &#34;$objects&#34; = (
      &#34;$null&#34;,
      {   &#34;$class&#34; = :false;
            NSFontDescriptorAttributes = :false;
      },
      {   &#34;$class&#34; = :false;
            NS.keys = ( :false, :false );
            NS.objects = ( :false, :false );
      },
      &#34;NSFontNameAttribute&#34;,
      &#34;NSFontSizeAttribute&#34;,
      &#34;Menlo-Regular&#34;,
      12,
      {   &#34;$classes&#34; = ( &#34;NSMutableDictionary&#34;, &#34;NSDictionary&#34;, &#34;NSObject&#34; );
            &#34;$classname&#34; = &#34;NSMutableDictionary&#34;;
      },
      {   &#34;$classes&#34; = ( &#34;NSFontDescriptor&#34;, &#34;NSObject&#34; );
            &#34;$classname&#34; = &#34;NSFontDescriptor&#34;;
      },
    );
    &#34;$top&#34; = { root = :false; };
    &#34;$version&#34; = 100000;
}
</code></pre>

<p>MD5 数据解码为 <code>A62248B900DBD8D082B9A2E11FF80D2B</code>,我会说这是一个 MD5 哈希。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 从 plist 文件中解码数据,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/27509319/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/27509319/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 从 plist 文件中解码数据