我丢失了Macbook Air上用Textwrangler编写的文本文件中的一些数据。我在文件中找到了一些扩展名为.plist的文件。文件是用xml编写的,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<key>/Applications/MAMP/htdocs/04. Clock-box/login.php</key>
<dict>
<key>BBEditStateData</key>
<dict>
<key>MainScrollBar</key>
<integer>0</integer>
<key>PrintDateIsModificationDate</key>
<string>asmo</string>
<key>PrintingFont</key>
<data>
YnBsaXN0MDDUAQIDBAUIKClUJHRvcFgkb2JqZWN0c1gk
dmVyc2lvblkkYXJjaGl2ZXLRBgdUcm9vdIABqQkKDxka
GxwdJFUkbnVsbNILDA0OViRjbGFzc18QGk5TRm9udERl
c2NyaXB0b3JBdHRyaWJ1dGVzgAiAAtMQCxESFRZaTlMu
b2JqZWN0c1dOUy5rZXlzohMUgAWABoAHohcYgAOABF8Q
E05TRm9udE5hbWVBdHRyaWJ1dGVfEBNOU0ZvbnRTaXpl
QXR0cmlidXRlXU1lbmxvLVJlZ3VsYXIiQUAAANIeHyAh
WCRjbGFzc2VzWiRjbGFzc25hbWWjISIjXxATTlNNdXRh
YmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnlYTlNPYmpl
Y3TSHh8lJ6ImI18QEE5TRm9udERlc2NyaXB0b3JfEBBO
U0ZvbnREZXNjcmlwdG9yEgABhqBfEA9OU0tleWVkQXJj
aGl2ZXIACAARABYAHwAoADIANQA6ADwARgBMAFEAWAB1
AHcAeQCAAIsAkwCWAJgAmgCcAJ8AoQCjALkAzwDdAOIA
5wDwAPsA/wEVASIBKwEwATMBRgFZAV4AAAAAAAACAQAA
AAAAAAAqAAAAAAAAAAAAAAAAAAABcA==
</data>
<key>SelectionEnd</key>
<integer>892</integer>
<key>SelectionStart</key>
<integer>0</integer>
<key>WindowShape</key>
<string>rect(45,14,1011,1317)</string>
</dict>
<key>LastAccessed</key>
<date>2014-12-09T14:22:18Z</date>
<key>MD5</key>
<data>
QTYyMjQ4QjkwMERCRDhEMDgyQjlBMkUxMUZGODBEMkI=
</data>
</dict>
如何解码“数据”标签内的数据?
答案 0 :(得分:2)
数据中的代码为Base64,可以使用任何在线工具轻松解码,例如this one。
PrintingFont
的数据将解码为二进制文件,其中包含的信息如果转换为ASCII(显然不包括注释),或多或少会看起来像这样:
// !!! 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!
//
{ "$archiver" = "NSKeyedArchiver";
"$objects" = (
"$null",
{ "$class" = :false;
NSFontDescriptorAttributes = :false;
},
{ "$class" = :false;
NS.keys = ( :false, :false );
NS.objects = ( :false, :false );
},
"NSFontNameAttribute",
"NSFontSizeAttribute",
"Menlo-Regular",
12,
{ "$classes" = ( "NSMutableDictionary", "NSDictionary", "NSObject" );
"$classname" = "NSMutableDictionary";
},
{ "$classes" = ( "NSFontDescriptor", "NSObject" );
"$classname" = "NSFontDescriptor";
},
);
"$top" = { root = :false; };
"$version" = 100000;
}
MD5数据解码为A62248B900DBD8D082B9A2E11FF80D2B
,我想说的是MD5哈希值。
答案 1 :(得分:0)
你可以:
使用NSDictionary
方法initWithContentsOfFile
将plist加载到字典对象中;或
使用NSData
手动将base64字符串转换回initWithBase64EncodedString
。