在 iOS 解密 p7s 文件
Decrypt p7s file on iOS
在测试 iOS
应用程序时,我遇到了以下问题。
我从远程网络服务器收到一个包含以下内容的 .p7s
文件(可在 Mac 的 TextEdit
应用程序中查看):
0Ä *ÜHܘ
†Ä0Ä10 +�0Ä *ÜHܘ
†Ä$ÄÇ˚<?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">
<dict>
<key>CHALLENGE</key>
<string>panacya</string>
<key>IMEI</key>
<string>01 232700 828513 5</string>
<key>PRODUCT</key>
<string>iPad1,1</string>
<key>SERIAL</key>
<string>GB0269NJETU</string>
<key>UDID</key>
<string>2866681d94ae6c56d189485d39c54eaedecf211c</string>
<key>VERSION</key>
<string>9A5288d</string>
</dict>
</plist>
������†Ç
[0ÇÛ0Ç\†
u6ÜΩ~60
*ÜHܘ
�0Z10 UUS10U
Apple Inc.10UApple iPhone10UApple iPhone Device CA0
110808222517Z
140808222517Z0ÅÉ1-0+U90C19C-43F9-47C5-8534-A54F184E37DC10 UUS10 UCA10U Cupertino10U
这是原始文件的 link - https://www.dropbox.com/s/lm05gg866zdrz20/ota-response.p7s?dl=0
然后我将 NSData
作为 .p7s
文件保存到磁盘。
我需要从文件中取出嵌入的 .plist
(从我看到的内容来看,它确实包含该文件)或至少将其转换为可读的 NSString
,然后我可以将其显示在 UILabel
.
这完全可能吗?我该如何实现?
您可以将其读入 NSData
实例并使用
- (NSRange)rangeOfData:(NSData *)dataToFind options:(NSDataSearchOptions)mask range:(NSRange)searchRange
找到plist的开头和结尾。然后使用
- (NSData *)subdataWithRange:(NSRange)range
只获取 plist 数据。最后转换为 NSString
与:
- (instancetype)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding
在测试 iOS
应用程序时,我遇到了以下问题。
我从远程网络服务器收到一个包含以下内容的 .p7s
文件(可在 Mac 的 TextEdit
应用程序中查看):
0Ä *ÜHܘ
†Ä0Ä10 +�0Ä *ÜHܘ
†Ä$ÄÇ˚<?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">
<dict>
<key>CHALLENGE</key>
<string>panacya</string>
<key>IMEI</key>
<string>01 232700 828513 5</string>
<key>PRODUCT</key>
<string>iPad1,1</string>
<key>SERIAL</key>
<string>GB0269NJETU</string>
<key>UDID</key>
<string>2866681d94ae6c56d189485d39c54eaedecf211c</string>
<key>VERSION</key>
<string>9A5288d</string>
</dict>
</plist>
������†Ç
[0ÇÛ0Ç\†
u6ÜΩ~60
*ÜHܘ
�0Z10 UUS10U
Apple Inc.10UApple iPhone10UApple iPhone Device CA0
110808222517Z
140808222517Z0ÅÉ1-0+U90C19C-43F9-47C5-8534-A54F184E37DC10 UUS10 UCA10U Cupertino10U
这是原始文件的 link - https://www.dropbox.com/s/lm05gg866zdrz20/ota-response.p7s?dl=0
然后我将 NSData
作为 .p7s
文件保存到磁盘。
我需要从文件中取出嵌入的 .plist
(从我看到的内容来看,它确实包含该文件)或至少将其转换为可读的 NSString
,然后我可以将其显示在 UILabel
.
这完全可能吗?我该如何实现?
您可以将其读入 NSData
实例并使用
- (NSRange)rangeOfData:(NSData *)dataToFind options:(NSDataSearchOptions)mask range:(NSRange)searchRange
找到plist的开头和结尾。然后使用
- (NSData *)subdataWithRange:(NSRange)range
只获取 plist 数据。最后转换为 NSString
与:
- (instancetype)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding