gpt4 book ai didi

iphone - 确保文件完整性的好策略

转载 作者:行者123 更新时间:2023-12-03 18:45:16 25 4
gpt4 key购买 nike

我有一些代码可以从网络服务器下载 plist 并将其存储在手机的文档目录中。我担心的是,如果文件损坏,则会影响应用程序的稳定性和用户体验。

我在应用程序的数据读取部分进行防御性编码,但想知道在旧文件被覆盖之前首先检查文件的完整性有什么建议。我正在考虑实现某种计算值,例如它也作为键存储在 plist 中。

任何关于使其尽可能强大的想法将不胜感激。

致以诚挚的问候

戴夫

最佳答案

看看CommonCrypto/CommonDigest.h

CC_MD5(const void *data, CC_LONG len, unsigned char *md);函数计算 MD5 哈希值。

@implementation NSData (MD5)

-(NSString*)md5
{
unsigned char digest[CC_MD5_DIGEST_LENGTH];
CC_MD5([self bytes], [self length], digest);

NSString* s = [NSString stringWithFormat: @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
digest[0], digest[1],
digest[2], digest[3],
digest[4], digest[5],
digest[6], digest[7],
digest[8], digest[9],
digest[10], digest[11],
digest[12], digest[13],
digest[14], digest[15]];
return s;

}

@end

作为服务器上文件部署的一部分,您可以使用 OpenSSL 来计算哈希值。 openssl md5 filename 命令计算文件的 MD5 哈希值。这可以集成到脚本中。

然后,在您的应用程序下载文件后,它会计算已下载内容的哈希值,并将其与服务器上存储的哈希值进行比较。

显然,如果你想保证一个plist文件的完整性,这个plist不能包含自己的hash。

关于iphone - 确保文件完整性的好策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2047408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com