Я использую этот код для создания hash от передачи строки к передаче IOS Приложение.Создание iOS SHA1 Hash с символами UTF-8
-(NSString*) sha1:(NSString*)input
{
const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];
NSData *data = [NSData dataWithBytes:cstr length:input.length];
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;
}
мой PHP код
sha1(json_encode($array));
У меня есть строка, которая содержит арабских языков.
когда я создаю хэш от английского строки и сравнить его с хэш, созданной из PHP кода под Ubuntu * сильного текста * результат будет таким же.
но когда я создаю хэш с арабский персонаж это будет и сравнить его с хешем, созданным с помощью php-кода, не приведет к результату.
так что это за проблема с этим кодом.
Благодаря
Вы можете разместить php-код для создания хэша? – doptimusprime
input.length - это количество символов в строке, а не количество байтов в представлении данных с кодировкой UTF8. Вы похожи Если вы преобразуете его в NSData, вы обрезаете строку. Попробуйте использовать - [NSString dataUsingEncoding:] вместо – iccir
да конечно: return sha1 (json_encode ($ array)); –