1
我看到處處都找不到解決方案,我的問題。我已經爲Android和Windows編寫了一個程序,用於計算給定圖像的SHA1哈希值。我用我下載的HashCalc證實了這些哈希值。然而,當我嘗試爲iPhone做同樣的事情時,我得到了一個完全不同的散列。我相信在計算散列值之前,將圖像轉換爲字節數組有關。這裏是我的代碼:在iPhone上生成SHA1(圖片)? (不正確的結果)
- (void)imagePickerCotroller:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
[imageview setImage:image];
NSData* imageData = UIImageJPEGRepresentation(image, 1);
NSString *hash = makeSHA1(imageData);
[filepath setText: hash];
[self dismissModalViewControllerAnimated:YES];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[self dismissModalViewControllerAnimated:YES];
}
NSString* makeSHA1(NSData *data) {
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(data.bytes, data.length, digest);
NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
return output;
}
這也給了錯誤的散列 – silentBeep 2014-07-01 08:54:06