目标邮编密码和CRC
我使用Objective Zip来压缩iOS应用程序中的一些文件。
我想用密码保护他们,并记下呼叫…
- (ZipWriteStream *) writeFileInZipWithName:(NSString *)fileNameInZip fileDate:(NSDate *)fileDate compressionLevel:(ZipCompressionLevel)compressionLevel password:(NSString *)password crc32:(NSUInteger)crc32;
…需要CRC32值。
没有成为这方面的专家,并在维基百科等读了关于CRC,我仍然不知道什么价值进入这里。
它可以是零? 应该是文件的字节数? 任何随机数字?
帮助和指导表示赞赏。
谢谢
首先,你必须计算你想要压缩文件的CRC值:
NSData *data = [[NSData alloc] initWithContentsOfFile:@"/path/to/your/file/to/zip"]; unsigned long result = crc32(0, data.bytes, (unsigned int)data.length);
创build一个新的Zip,添加你的文件并传递CRC结果:
ZipFile *zipFile= [[ZipFile alloc] initWithFileName:@"/tmp/File.zip" mode:ZipFileModeCreate]; ZipWriteStream *stream= [zipFile writeFileInZipWithName:@"File.name" fileDate:[NSDate date] compressionLevel:ZipCompressionLevelDefault password:@"your_password"] crc32:result]; [stream writeData:data]; [stream finishedWriting]; [zipFile close];
请确保您在zip.c(MiniZip)中的以下行未注释:
//#define NOCRYPT
另外检查你是否已经将文件crypt.h添加到你的项目中。