iOSアプリケーション内でMD5ハッシュを計算しようとしています。アプリケーション内に保存されたファイルとウェブサーバーに保存された同じファイルのハッシュを比較しようとしています。 PHP。iPhone上のUIImageとサーバー上のファイルのMD5ハッシュを比較する
これは、iOSアプリのコードです:
unsigned char result[CC_MD5_DIGEST_LENGTH];
NSData* data = [NSData dataWithContentsOfFile:@"advert.png"];
const void* src = [data bytes];
CC_MD5(src, [data length], result);
NSString *imageHash = [[NSString stringWithFormat:
@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]]
lowercaseString];
NSLog(@"%@", imageHash);
Webサーバのためのコード:
$file = 'advert.png';
echo 'MD5 file hash of ' . $file . ': ' . md5_file($file);
アプリが生成します。D41D8CD98F00B204E9800998ECF8427E
は、PHPが生成されます。3ef9386b1dd50e8e166efbe48f0f9401
md5sumが生成します。3ef9386b1dd50e8e166 efbe48f0f9401
UPDATE:
ちょうどシミュレータを通じてアプリを実行し、それが正しくハッシュを計算:3ef9386b1dd50e8e166efbe48f0f9401。
としてiOSの5.1それは計算を実行している私のiPhone 4上で実行したとき:ddf017003e063e353a5e4ec2cc4a5095
同じ文字列のファイルに置き換えた場合、同じ結果が得られますか? –
答えを広げることはできますか?あなたが申し訳ありませんが何を意味するか分かりません –
現在、あなたはファイルのハッシュを取得しています、既知の文字列のハッシュを取得することをお勧めします。 –