1
나는 어디에서나 보았고 내 문제에 대한 해결책을 찾을 수 없습니다. 나는 주어진 이미지의 SHA1 해시를 계산하는 안드로이드와 윈도우 모두를위한 프로그램을 작성했다. 내가 다운로드 한 HashCalc로이 해시를 확인했다. 그러나 내가 iPhone을 위해 똑같이하려고 할 때 나는 완전히 다른 해시를 얻습니다. 해시를 계산하기 전에 이미지를 바이트 배열로 변환하는 것과 관련이 있다고 생각합니다. 내가 여기에 문제가 당신이 UIImageJPEGRepresentation()
를 사용하여 데이터를 변환하고 있다는 의심iPhone에서 SHA1 (of Image)을 생성 하시겠습니까? (잘못된 결과)
- (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