Вы получаете байты с [inputString UTF8String]
, но длина с [inputString lengthOfBytesUsingEncoding:NSASCIIStringEncoding]
.Это явно неправильно.Более того (при условии, что вы имеете в виду «\ xB4» и что оно превращается во что-то, отсутствующее в ASCII), «\ xB4» вряд ли будет в ASCII.Документы для NSString говорят:
Возвращает 0, если указанную кодировку нельзя использовать для преобразования получателя
Итак, вы вычисляете хеш пустой строки.Конечно, это неправильно.
У вас меньше проблем, если вы сгенерируете данные только один раз:
NSData * inputData = [inputString dataUsingEncoding:NSUTF8StringEncoding];
CC_SHA256(inputData.bytes, inputData.length, hashedChars);