目标邮编密码和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添加到你的项目中。