0

私はIOSで実行されるモバイルアプリsha-512関数を実装しています。この関数は、Safariを含むすべてのブラウザーで正常に機能しています。

iOSシミュレーターを使用してアプリケーションをテストしています。

私のアプリケーションは、1ページ/クリックからsha-512関数を3回呼び出しています。問題は、最初の呼び出しでsha-512関数が正しい結果を生成するのに対し、2番目と3番目の呼び出しで間違った結果を生成することです。

前もって感謝します

4

1 に答える 1

0

これは私のコードです

//Creating Hash Value
NSString *hashkey = [NSString stringWithFormat:@"data"];
// PHP uses ASCII encoding, not UTF
NSLog(@"hashkey : %@",hashkey);
const char *s = [hashkey cStringUsingEncoding:NSASCIIStringEncoding];
NSData *keyData = [NSData dataWithBytes:s length:strlen(s)];

// This is the destination SHA512_Final
uint8_t digest[CC_SHA512_DIGEST_LENGTH] = {0};
// This one function does an unkeyed SHA1 hash of your hash data
CC_SHA512(keyData.bytes, keyData.length, digest);

// Now convert to NSData structure to make it usable again
NSData *out = [NSData dataWithBytes:digest length:CC_SHA512_DIGEST_LENGTH];
// description converts to hex but puts <> around it and spaces every 4 bytes
NSString *hash = [out description];
hash = [hash stringByReplacingOccurrencesOfString:@" " withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@"<" withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@">" withString:@""];

それがあなたを助けることを願っています。

于 2013-01-03T08:15:39.137 に答える