我得到了上面的错误(在标题),而从文件做一个MD5 ..我通常可以应付这种types的32-> 64位转换问题..但在这种情况下,我不知道我该怎么做,因为CC_MD5是CommonCrypto->CommonDigest ,一个iOS7.1附带的库。 我假设[inputData length]是返回NSUInteger,其中存在的问题,但是我可以简单地从UL下拉到UI? 如果文件很大,我可能会失去精度。 为什么苹果提供的图书馆需要使用64位的语言,如iOS? 有人忽略了一些事情,或者我真的很愚蠢,错误地诊断问题? – (NSString*) getMD5FromFile:(NSString *)pathToFile { unsigned char outputData[CC_MD5_DIGEST_LENGTH]; NSData *inputData = [[NSData alloc] initWithContentsOfFile:pathToFile]; CC_MD5([inputData bytes], [inputData length], outputData); [inputData release]; NSMutableString *hash = [[NSMutableString alloc] init]; for (NSUInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { [hash appendFormat:@"%02x", outputData[i]]; } return [hash autorelease]; } 从CommonCrypto-> […]
我正在寻找一些在我的iPhone应用程序获取MD5和SHA-1的帮助。 有谁能给我一个如何得到这些想法?
我正在为大型video文件创buildMD5校验和。 我目前正在使用的代码: extension NSData { func MD5() -> NSString { let digestLength = Int(CC_MD5_DIGEST_LENGTH) let md5Buffer = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: digestLength) CC_MD5(bytes, CC_LONG(length), md5Buffer) let output = NSMutableString(capacity: Int(CC_MD5_DIGEST_LENGTH * 2)) for i in 0..<digestLength { output.appendFormat("%02x", md5Buffer[i]) } return NSString(format: output) } } 但是这会创build一个内存缓冲区,而对于大型video文件来说并不理想。 有什么方法在Swift中计算读取文件stream的MD5校验和,所以内存占用将是最小的?
我试图通过在iOS中使用哈希值来重命名它们来创build唯一的文件名。 我怎样才能做到这一点?